Tuesday 15 May 2012

database - Matching rows of same table using visual basic -


यह एक साधारण दृश्य मूल विंडोज फॉर्म है I डाटाबेस एक स्थानीय sqlserver डेटाबेस है

टास्क 4 कॉलम युक्त तालिका के माध्यम से जाने के लिए है:। आईडी DATETIME,, onOff, परम

आईडी एक विशिष्ट उपकरण DATETIME, के लिए अद्वितीय है। की जब एक घटना हुई, onOff या तो एक स्ट्रिंग होगा "पर" या "बंद" एक टाइमस्टैम्प है, और परम एक पूर्णांक, नहीं अद्वितीय।

प्रत्येक आईडी के लिए, कहते हैं कि पहली पंक्ति आईडी 23 है और यह "चालू" है और परम 6 है, मुझे उस आईडी के लिए "बंद" पंक्ति का पता लगाना होगा जो कि 23 के आईडी और 6 के परम के बीच है और डेटटाइम में अंतर की गणना करने के लिए उस अवधि को निर्धारित करने के लिए कि आईडी चालू या बंद थी

यह तालिका में सभी आईडी के लिए होने की आवश्यकता है, लगभग 10 मिलियन पंक्तियों। प्रत्येक आईडी के लिए कई जोड़े / बंद जोड़े हैं, कुंजी को डेटटाइम के बारे में सबसे निकटतम ढूंढना है

मैं देखा और datatables और डेटासेट से कोई लाभ नहीं हुआ ऐसा करने के कई तरीके, की कोशिश की, एक csv के लिए बाहर सब कुछ धक्का और एक समय में ब्लॉक में इसे वापस पढ़ने के लिए है। इस बारे में जाने के लिए सबसे अच्छा तरीका क्या है और आपका क्या कदम होगा?

निम्न कोड में, उपयोगकर्ता एक बार आरंभ और समाप्ति दिनांक चुनने के बाद, सही डेटा को डाटालेबल में रखा जाता है। अब मैं के रूप में ऊपर कहा गया है पंक्तियों से मेल खाते के कार्य को करने की जरूरत है

  मंद sConnectionString स्ट्रिंग sConnectionString = "डेटा स्रोत = [servername] के रूप में;। प्रारंभिक सूची = [tabelname]; एकीकृत सुरक्षा = सच "मंद objConn न्यू SqlConnection (sConnectionString) objConn.Open () मंद आईडी स्ट्रिंग आईडी = TextBox1.Text मंद STARTDATE के रूप में के रूप में दिनांक STARTDATE = DateTimePicker1.Value.Date मंद ENDDATE के रूप में तिथि है ENDDATE = DateTimePicker2.Value.Date मंद strSql स्ट्रिंग के रूप में के रूप में = "चयन आईडी, डेटटाइम, ऑनऑफ, परम फॉर सिग्नलराव केयर कास्ट (डेटटाइम के रूप में DATE) '' के बीच में & amp; शुरुआत और amp; "'और'" & amp; एंडडेट एंड amp; "'" डीमैम डेसिगनलराकॉमा के रूप में नई एसक्यूएलडाटाएडएप्टर (स्ट्र एसक्यूएल, ओजकॉन) डीएमटी डीटीबी के रूप में नई डाटाटीबल डीसीआईएनएलआरओसीमा.फिल (डीटीबी)    

एसक्यूएल में यह सब करें और परिणाम पढ़ें:

  चयन आईडी, दिनांकटाइम, ऑनऑफ, परम, (सिग्नलरा से कहाँ शीर्ष 1 तारीख का समय समय आईडी = sr.id और Param = sr.param और onoff = 'OFF' और कास्ट (तिथि के रूप में दिनांक) & gt; = '1/1/11' और कास्ट (तारीख समय दिनांक) & gt; = CAST (DATE के रूप में sr.dateTime) आदेश दिनांक द्वारा) OffTime signalRaw sr कहां कास्ट (तारीख के रूप में dATETIME) 'पर' '1/1/11' और '2/1/11' और onoff =  के बीच  

वैसे से ... तिथियों को तिथियों के रूप में स्टोर करें CASTING दर्दनाक है।

No comments:

Post a Comment