2012-07-29 9 views
6

में कैसे परिवर्तित कर सकता हूं, मैंने डेटाटेबल में डेटा को डिमॉर्मलाइज्ड किया है।मैं किसी डेटाटेबल को संबंधित डेटासेट

डेटा में कर्मचारी नाम होते हैं, और वेतन चक्रों की एक श्रृंखला में भुगतान किया जाता है। यानी .:

मेरे DataTable में शामिल हैं:

Employee 1   Jan-1-2012   $100 
Employee 2   Jan-1-2012   $300 
Employee 1   Feb-1-2012   $400 
Employee 2   Feb-1-2012   $200 
Employee 1   Mar-1-2012   $150 
Employee 2   Mar-1-2012   $325 

कैसे एक डेटासेट जहां माता-पिता DataTable कर्मचारियों नाम, और बच्चे DataTable पेचेक का विवरण होता है उसमें इस डेटा लोड कर सकते हैं?

+0

आपका प्रश्न, पर्याप्त विशिष्ट नहीं है यही कारण है कि आप उत्तर नीचे हो रही है है। यदि आप उदाहरण देते हैं कि आप "पैरेंट" और "बच्चे" डेटाटेबल्स को कैसा दिखाना चाहते हैं, तो हो सकता है कि अन्य लोग आप जिस उत्तर की उम्मीद कर रहे हों उसे दे सकें। –

उत्तर

11

डेटासेट डेटाटेबल्स का संग्रह नहीं है। तो "लोड" डाटासेट सरल में DataTable करने के लिए यह करें:

 DataTable employees = new DataTable(); 
     DataTable payCheckes = new DataTable(); 
     DataSet ds = new DataSet(); 
     ds.Tables.Add(employees); 
     ds.Tables.Add(payCheckes); 

आप datatables किसी भी तरह "गठबंधन" करना चाहते हैं? प्रत्येक कर्मचारी के पेचेक प्राप्त करें?

+0

मुझे यकीन नहीं है कि आप जो कह रहे हैं उसके बारे में मैं क्या कह रहा हूं उससे कोई प्रासंगिकता है। – MillinMo

+1

@MillinMo - शायद हमें यकीन नहीं है कि आप क्या पूछ रहे हैं। –

+0

ठीक उसी तरह @ हेनक ने कहा, आपने इस तरह के किसी भी सटीक प्रश्न से नहीं पूछा था, जैसे डेटाटेबल्स, या कुछ समान के बीच संबंध बनाने के लिए। कृपया आगे बढ़ें और पूछें। –

1
 DataSet ds = new DataSet(); 
     DataTable dtemploye = new DataTable(); 
     DataColumn dcnameemploye = new DataColumn(); 
     DataColumn dcIdemploye = new DataColumn(); 
     dtemploye.Columns.AddRange(new DataColumn[]{dcnameemploye,dcIdemploye}); 

     DataTable dtpayment = new DataTable(); 
     DataColumn dtprice = new DataColumn(); 
     DataColumn dtDate = new DataColumn(); 
     DataColumn dcIdemployeprice = new DataColumn(); 
     dtpayment.Columns.AddRange(new DataColumn[]{dcIdemployeprice,dtprice,dtDate}); 

     DataRow drrowemploy = dtemploye.NewRow(); 
     drrowemploy[0] = "1"; 
     drrowemploy[1] = "Employee 1"; 
     dtemploye.Rows.Add(drrowemploy); 

     DataRow drrowpayment = dtpayment.NewRow(); 
     drrowpayment[0] = "1"; 
     drrowpayment[0] = "01/01/2012"; 
     drrowpayment[1] = " 300"; 


     ds.Tables.AddRange(new DataTable[]{dtemploye, dtpayment}); 

     DataRelation drrelation = new DataRelation("relemploy_payment", dcIdemploye, dcIdemployeprice); 
     ds.Relations.Add(drrelation); 
+0

मुझे यकीन नहीं है कि आप जो कह रहे हैं उसके बारे में मैं क्या कह रहा हूं उससे कोई प्रासंगिकता है। – MillinMo

+0

हैलो, इसे दो डेटाटेबल पर डेटा लोड करें और डेटाटेबल पैरेंट (कर्मचारी) और डेटाटेबल बच्चे (भुगतान) –

+0

के बीच एक संबंध स्थापित करें, यह सुनिश्चित करने के लिए कि आपका डेटा एसक्यूएल सर्वर से आता है, आपको मैन्युअल रूप से डेटा डालने की आवश्यकता नहीं है –

3

मैनुअल डालने के बिना कोड:

 DataSet ds = new DataSet(); 
     DataTable dtemploye = new DataTable(); 
     DataTable dtpayment = new DataTable(); 

     ds.Tables.AddRange(new DataTable[] { dtemploye, dtpayment }); 
     DataColumn dcIdemploye = dtemploye.Columns["ID_EMPLOYEE"]; 
     DataColumn dcIdemployeprice = dtpayment.Columns["ID_EMPLOYEE"]; 
     DataRelation drrelation = new DataRelation("relemploy_payment", dcIdemploye, dcIdemployeprice); 
     ds.Relations.Add(drrelation); 
+0

भरने के लिए डेटा एडाप्टर का उपयोग करें, आपको इस कॉलम को सही पैरेंट कॉलम पर बांधना होगा जो dcIdemploye = dtemploye है। कॉलम ["ID_EMPLOYEE"] –

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