2011-06-20 13 views
40

एक पूर्ण शुरुआत का प्रश्न: मैं डब्ल्यूपीएफ में डेटासेट से डेटा कैसे पढ़ूं? मेरे पास केवल 2 कॉलम के साथ एक ट्रेन शेड्यूल टेबल है और मैं प्रस्थान के समय को पढ़ने में सक्षम होना चाहता हूं और अगली ट्रेन छोड़ने पर गणना करना चाहता हूं। उदाहरण के लिए, अब समय 12:29 है और मेरे आवेदन से मुझे यह बताना चाहिए कि अगली ट्रेन 12:33 बजे प्रस्थान करेगी।डेटासेट

मैं पहले से ही बाएं और दाएं googled। मैं .NET 3.5 पर हूं।

धन्यवाद

+1

यहां मुख्य प्रश्न यह है कि: आप इस डेटासेट को कहां पढ़ रहे हैं? कोड में? एक्सएएमएल में? एक डाटाग्रिड में? एक सूची में? – Damascus

+0

यदि कोई प्रतिक्रिया आपके प्रश्न का उत्तर देती है, तो आपको इसे स्वीकृत उत्तर के रूप में चिह्नित करना चाहिए। – reggaeguitar

उत्तर

19

तो डी एस डेटासेट है, तो आप की तरह कुछ के साथ पहली तालिका में पहली पंक्ति की CustomerID स्तंभ पहुँच सकते हैं:

DataRow dr = ds.Tables[0].Rows[0]; 
Console.WriteLine(dr["CustomerID"]); 
1

यह आप कर सकते थे datebase एक एसक्यूएल सर्वर से है, तो मुद्दा क्वेरी इस तरह की ...

चयन शीर्ष 1 TrainSchedule से DepartureTime जहां DepartureTime> GetUTCDate() आदेश DepartureTime एएससी तक

GetDate() का भी उपयोग किया जा सकता है, यह सुनिश्चित नहीं किया जा सकता कि तिथियां कैसे संग्रहीत की जा रही हैं।

मुझे यकीन नहीं है कि डेटा बेनिग कैसे संग्रहीत और/या पढ़ा जाता है।

96

डेटासेट डेटाबेस जैसा दिखता है। डेटाटेबल डेटाबेस तालिका जैसा दिखता है, और डेटारो किसी तालिका में एक रिकॉर्ड जैसा दिखता है। यदि आप फ़िल्टरिंग या सॉर्टिंग विकल्पों को जोड़ना चाहते हैं, तो आप डेटा व्यू ऑब्जेक्ट के साथ ऐसा करते हैं, और इसे वापस डेटाटेबल ऑब्जेक्ट में परिवर्तित कर देते हैं।

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

SqlCeDataAdapter da = new SqlCeDataAdapter(); 
DataSet ds = new DataSet(); 
DataTable dt = new DataTable(); 

da.SelectCommand = new SqlCommand(@"SELECT * FROM FooTable", connString); 
da.Fill(ds, "FooTable"); 
dt = ds.Tables["FooTable"]; 

foreach (DataRow dr in dt.Rows) 
{ 
    MessageBox.Show(dr["Column1"].ToString()); 
} 

एक पंक्ति में एक विशेष सेल पढ़ने के लिए:

int rowNum // row number 
string columnName = "DepartureTime"; // database table column name 
dt.Rows[rowNum][columnName].ToString(); 
+2

स्पष्टीकरण का पालन करने के लिए बहुत उपयोगी और आसान है। कुछ लोग स्पष्ट रूप से और संक्षेप में सोचते हैं और यह दिखाता है। धन्यवाद। – Danrex

+0

एक और सी # नोब इसे पढ़ने के रूप में मैं उत्साहित था जब तक कि मैंने वास्तव में डेटाटेबल को कोडिंग करने की कोशिश नहीं की। कुछ शिकार के बाद मुझे पता चला कि मुझे 'System.Data;' कथन का उपयोग करने की आवश्यकता है। – Cory

+0

प्रोग्राम वास्तव में डेटाबेस से कौन सा कदम प्राप्त करता है? –

1

एक डाटासेट एक डेटाबेस से पहुँचा डेटा की एक प्रतिलिपि है, लेकिन फिर भी करने के लिए एक डेटाबेस की आवश्यकता नहीं है बिल्कुल उपयोग करें। हालांकि, यह पसंद किया जाता है।

ध्यान दें कि यदि आप एक नया आवेदन बना रहे हैं, तो एंटीटी फ्रेमवर्क या एनएचबेर्नेट जैसे ओआरएम का उपयोग करने पर विचार करें, क्योंकि डेटासेट अब और पसंदीदा नहीं हैं; हालांकि, वे अभी भी समर्थित हैं और जहां तक ​​मैं कह सकता हूं, जल्द ही किसी भी समय नहीं जा रहे हैं।

यदि आप मानक डेटासेट से पढ़ रहे हैं, तो @ केएमसी का जवाब वह है जिसे आप ढूंढ रहे हैं। ऐसा करने का सही तरीका, हालांकि, एक मजबूत टाइप किए गए डेटासेट को बनाना और इसका उपयोग करना ताकि आप इंटेलिसेंस का लाभ उठा सकें। मान लीजिए कि आप इकाई फ्रेमवर्क का उपयोग नहीं कर रहे हैं, आगे बढ़ें।

यदि आपके पास पहले से ही आपके डेटा एक्सेस लेयर, जैसे प्रोजेक्ट या ऐप_Data फ़ोल्डर के लिए समर्पित स्थान नहीं है, तो मेरा सुझाव है कि आप अभी एक बनाएं। अन्यथा, अपने डेटा प्रोजेक्ट फ़ोल्डर के अंतर्गत निम्नानुसार आगे बढ़ें: जोड़ें> नया आइटम> डेटासेट जोड़ें। बनाई गई फ़ाइल में एक .xsd एक्सटेंशन होगा।

आपको डेटाटेबल बनाने की आवश्यकता होगी। डेटाटेबल बनाएं (फ़ाइल पर क्लिक करें, फिर डिज़ाइन विंडो पर राइट क्लिक करें - फ़ाइल में .xsd एक्सटेंशन है - और जोड़ें> डेटाटेबल पर क्लिक करें)। कुछ कॉलम बनाएं (जिस डेटा को आपने अभी बनाया है> जोड़ें> कॉलम पर राइट क्लिक करें)। अंत में, डेटा तक पहुंचने के लिए आपको एक टेबल एडाप्टर की आवश्यकता होगी। डेटासेट में संदर्भित डेटा तक पहुंचने के लिए आपको अपने डेटाबेस में एक कनेक्शन स्थापित करने की आवश्यकता होगी।

आपके काम के बाद, सफलतापूर्वक डेटा प्रोजेक्ट (स्टेटमेंट का उपयोग करके) का संदर्भ देने के बाद, आप इंटेलिजेंस के साथ डेटासेट का उपयोग कर सकते हैं। यह अवांछित डेटासेट से इतना आसान बनाता है।

जब संभव हो, तो अवांछित लोगों के बजाय मजबूत-टाइप किए गए डेटासेट का उपयोग करें। यद्यपि यह बनाने के लिए और अधिक काम है, यह अंततः इंटेलिजेंस के साथ आपको बहुत समय बचाता है। उपरोक्त उदाहरण मानता है कि अपने जोरदार टाइप डेटासेट प्रकार दिनांक समय का एक स्तंभ NextTrainDepartureTime नामक

MyStronglyTypedDataSet trainDataSet = new MyStronglyTypedDataSet(); 
DataAdapterForThisDataSet dataAdapter = new DataAdapterForThisDataSet(); 
//code to fill the dataset 
//omitted - you'll have to either use the wizard to create data fill/retrieval 
//methods or you'll use your own custom classes to fill the dataset. 
if(trainDataSet.NextTrainDepartureTime > CurrentTime){ 
    trainDataSet.QueueNextTrain = true; //assumes QueueNextTrain is in your Strongly-Typed dataset 
} 
else 
    //do some other work 

: आप की तरह कुछ कर सकता है। उम्मीद है की वो मदद करदे!

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

  • कोई संबंधित समस्या नहीं^_^