2011-05-31 12 views
12

मेरे पास एक परिदृश्य है जहां मुझे 65 कॉलम और 100 पंक्तियों के साथ डेटा तालिका मिलती है। मुझे सभी 100 पंक्तियों के साथ एक और डेटा तालिका बनाने की आवश्यकता है, यानी मूल डेटा तालिका के समान ही मूल तालिका में 65 में से केवल 5 कॉलम होने चाहिए। लूपिंग के बिना इसे हासिल करने का कोई तरीका है?केवल कुछ कॉलम के डेटा को एक और डेटा तालिका में कॉपी करना

+0

wht r कॉलम यू बनाए रखने के लिए चाहते हैं:

यहाँ अपने प्रश्न के लिए सबसे अच्छा समाधान है? पहले पांच या अंतिम पांच या चयनित पांच कॉलम? इसे स्पष्ट रूप से उल्लेख करें। – thevan

+0

@ thevan मेरे पास कुछ चयनित कॉलम – satyajit

+0

हाय सत्यजीत है। मैंने अपना जवाब संपादित किया। यह आपके प्रश्न का अंतिम समाधान देगा। – thevan

उत्तर

26

DataView.ToTable विधि आज़माएं।

इस तरह यह प्रयोग करें:

DataTable newTable = oldTable.DefaultView.ToTable(false, "ColumnName1", "ColumnName2", "ColumnName3", "ColumnName4", "ColumnName5"); 
+0

यह पंक्तियों की प्रतिलिपि भी करेगा – satyajit

+0

ओह क्षमा करें यह काम नहीं करेगा। मैंने अपना जवाब अपडेट किया। – Reniuz

+0

बहुत बढ़िया! आपने अपना समय बचाया: डी – Tony

3
DataTable oldTable = new DataTable(); 
DataTable newTable = oldTable.Copy(); 
for (int i = 5; i < 65; i++) 
{ 
    newTable.Columns.RemoveAt(i); 
} 
2

इस तरह की कोशिश करो,

DataTable newTable = oldTable.Copy(); 
newTable.Columns.Remove("ColumnName"); 

आप अवांछित कॉलम को हटा दें।

DataTable dt = new DataTable(); 
string [] column = {"Column1", "Column2"}; 
dt = DTItem.DefaultView.ToTable("dd", false, column);  
//DTItem is the Existing Table and "dd" is the temporary tablename, u give whatever u want 
1
private void button3_Click(object sender, EventArgs e) 
    { 
     DataTable destiny = new DataTable(); 
     destiny.Columns.Add("c1"); 
     destiny.Columns.Add("c2"); 
     destiny.Columns.Add("c3"); 
     destiny.Columns.Add("c4"); 

     CopyColumns(dtST_Split, destiny, "c1", "c2","c3","c4"); 

    } 

    private void CopyColumns(DataTable source, DataTable dest, params string[] columns) 
    { 
     foreach (DataRow sourcerow in source.Rows) 
     { 
      DataRow destRow = dest.NewRow(); 
      foreach (string colname in columns) 
      { 
       destRow[colname] = sourcerow[colname]; 
      } 
      dest.Rows.Add(destRow); 
     } 
    } 
+0

क्या आप अपने उत्तर में कुछ संदर्भ जोड़ सकते हैं? – Dev2rights

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