.net - Should AcceptChanges() be called every time a new row is added? -
जो सिफारिश की गई है
जबकि (reader.Read ()) {table.Rows। जोड़ें (नया वस्तु [] {पाठक [0], पाठक [1], पाठक [2], पाठक [3]}); table.AcceptChanges (); } या
जबकि (reader.Read ()) {table.Rows.Add (नया ऑब्जेक्ट [] {रीडर [0], रीडर [ 1], पाठक [2], पाठक [3]}); } तालिका। स्वीकार परिवर्तन (); नोट करें कि तालिका कहां स्थित है। परिवर्तन परिवर्तन रखे हैं।
1 संपादन करें
यहां कोड है ब्लॉक:
<पूर्व> संरक्षित शून्य पृष्ठ_लोड (ऑब्जेक्ट प्रेषक, इवेंटएरग्स ई) {IDataReader रीडर = cust.GetCustomerOrderSummary ("99999"); (डेटासेट डीएस = नया डेटासेट ()) का उपयोग करके (डेटाटायल तालिका = नया डेटाटाबल {टेबलनाम = "ऑर्डरसीमुरी"}) {DataColumn idColumn = table.Columns.Add ("number", typeof (int)); तालिका। कॉलम। जोड़ें ("नाम", टाइपफ (स्ट्रिंग)); तालिका। कॉलम। जोड़ें ("मात्रा", टाइपफ (इंट)); तालिका। कॉलम। जोड़ें ("पिछला_गुणता", टाइपफ (इंट)); तालिका। प्राथमिक = नई डेटा कॉलम [] {idColumn}; जबकि (reader.Read ()) {table.Rows.Add (नया ऑब्जेक्ट [] {रीडर [0], रीडर [1], रीडर [2], पाठक [3]}); table.AcceptChanges (); } डीएसटीबल्स.एड (टेबल); RptCustomerOrder रिपोर्ट = नए rptCustomerOrder {DataSource = ds}; रिपोर्ट विवर 1। रिपोर्ट = रिपोर्ट; एमएसडीएन लेख पढ़ने के बाद मैंने निम्नलिखित कथन के आधार पर लूप के बाहर स्वीकार्य चाइजेन्स () को रखने का फैसला किया है I / O (आलेख से): कॉल करने के लिए AcceptChanges DataTable स्तर पर प्रत्येक DataRow को कॉल करने के लिए AcceptChanges विधि का कारण बनता है।
कॉलिंग स्वीकार परिवर्तन वास्तव में आपके नए जोड़े गए DataRow DataRowState को चालू करेगा < / कोड> से जोड़ा गया से अपरिवर्तित । यदि आप इसके साथ जाते हैं तो आप अपने नये जोड़े की पंक्तियों के खोए हुए ट्रैकिंग और दृढ़ता के समय एडीओ। नेट उन पंक्तियों की पहचान करने में सक्षम नहीं होगा, जिन्हें डेटाबेस में डालने की जरूरत है इसलिए इस विकल्प को बुद्धिमानी से चुनें ताकि आपको इसकी आवश्यकता न हो।
Comments
Post a Comment