2008-11-12 20 views
38

में स्टोर करें यदि मेरे पास 2 डेटाटेबल्स (डीटीओएन और डीटीटीवो) हैं और मैं उन्हें मर्ज करना चाहता हूं और उन्हें अन्य डेटाटेबल (डीटीएएल) में रखना चाहता हूं। मैं इसे सी # में कैसे कर सकता हूं? मैंने डेटाटेबल पर मर्ज स्टेटमेंट की कोशिश की, लेकिन यह शून्य हो गया। डेटा को संरक्षित करता है? उदाहरण के लिए, अगर मैं कार्य करें: dtTwo में बदल जाती है2 डेटाटेबल्स मर्ज करें और एक नए

dtOne.Merge(dtTwo); 

करता dtOne परिवर्तन या और यदि या तो एक परिवर्तन, परिवर्तन भी सुरक्षित हैं?

मैं जानता हूँ कि मैं ऐसा नहीं कर सकते क्योंकि रिटर्न मर्ज शून्य है, लेकिन मैं dtAll में दोनों dtOne और dtTwo का विलय स्टोर करने के लिए सक्षम होना चाहते हैं:

//Will Not work, How do I do this 
dtAll = dtOne.Merge(dtTwo); 

उत्तर

75

Merge विधि से मान लेता है दूसरी तालिका और उन्हें पहली तालिका के साथ विलीन कर देती है, इसलिए पहले अब दोनों के मान रखेंगे।

आप मूल टेबल के दोनों सुरक्षित रखना चाहते हैं, तो आप, मूल पहली नकल कर सकता है तो विलय:

dtAll = dtOne.Copy(); 
dtAll.Merge(dtTwo); 
+1

के अंतिम परिणाम के लिए बाध्य है @ निकरलेस-नोगिन्स द्वारा कोड: 'सार्वजनिक स्थैतिक डेटाटेबल मर्जटवोडेटाटेबल्स (डेटाटेबल टेबल ए, डेटाटेबल टेबलबी) {डेटाटेबल विधिResult = null; {DataTable TableA = tableA.Copy() का प्रयास करें; TableA.Merge (tableB); MethodResult = TableA; } पकड़ो // (अपवाद पूर्व) {//ex.HandleException(); } वापसी विधि परिणाम; } ' – Kiquenet

9
dtAll = dtOne.Copy(); 
dtAll.Merge(dtTwo,true); 

पैरामीटर सही परिवर्तनों को सुरक्षित रखने।

अधिक जानकारी के लिए नीचे दिए गए लिंक का संदर्भ लें। http://msdn.microsoft.com/en-us/library/wkk7s5zk.aspx

1
DataTable dtAll = new DataTable(); 
DataTable dt= new DataTable(); 
foreach (int id in lst) 
{ 
    dt.Merge(GetDataTableByID(id)); // Get Data Methode return DataTable 
} 
dtAll = dt; 
+0

आईएमएचओ, उपयोगी उत्तर नहीं। [जेरोमी इरविन के उत्तर] से भी वही जवाब (http://stackoverflow.com/a/285500/979621)। अंत में, *** मर्ज *** का उपयोग करें। – Kiquenet

27

(काफी देर हो गई, लेकिन किसी को इस सवाल पर ठोकर मदद कर सकता है।)

के बजाय dtAll = dtOne.Copy();Jeromy Irvine's answer में आप कर सकते हैं:

dtAll = new DataTable(); 
... 
dtAll.Merge(dtOne); 
dtAll.Merge(dtTwo); 
dtAll.Merge(dtThree); 
... 

और इतने पर।

इस तकनीक को एक पाश जहां iteratively डेटा तालिकाओं मर्ज करना चाहते हैं में उपयोगी है:

DataTable dtAllCountries = new DataTable(); 

foreach(String strCountry in listCountries) 
{ 
    DataTable dtCountry = getData(strCountry); //Some function that returns a data table 
    dtAllCountries.Merge(dtCountry); 
} 
0

यह मैं दो datatables मर्ज करने के लिए क्या किया और gridview

 DataTable dtTemp=new DataTable(); 
     for (int k = 0; k < GridView2.Rows.Count; k++) 
     { 
      string roomno = GridView2.Rows[k].Cells[1].Text; 
      DataTable dtx = GetRoomDetails(chk, roomno, out msg); 
      if (dtx.Rows.Count > 0) 
      { 
       dtTemp.Merge(dtx); 
       dtTemp.AcceptChanges(); 

      } 
     } 
+0

IMHO, उपयोगी उत्तर नहीं। [जेरोमी इरविन के उत्तर] से भी वही जवाब (http://stackoverflow.com/a/285500/979621)। अंत में, *** मर्ज *** का उपयोग करें। – Kiquenet

संबंधित मुद्दे