मैं एक लघु एल्गोरिदम लिख रहा हूं जिसे दो डेटासेट की तुलना करना है, ताकि दोनों के बीच अंतर को और संसाधित किया जा सके। मैंने इन दो डेटासेट्स को विलय करके इस परिणाम को पूरा करने का प्रयास किया और परिणामी परिवर्तनों को एक नए डेटासेट में प्राप्त किया।2 डेटासेट्स में अंतर प्राप्त करें C#
मेरे विधि इस प्रकार है:
private DataSet ComputateDiff(DataSet newVersion, DataSet oldVersion)
{
DataSet diff = null;
oldVersion.Merge(newVersion);
bool foundChanges = oldVersion.HasChanges();
if (foundChanges)
{
diff = oldVersion.GetChanges();
}
return diff;
}
foundChanges का परिणाम हमेशा गलत है, भले ही दोनों डेटासेट उस में अलग-अलग मान। दोनों डेटासेट्स में एक ही strukture है। उनमें तीन डेटाटेबल्स शामिल हैं जो डेटाबेस में तीन क्वेरी का परिणाम हैं। मर्ज उस के साथ कोई समस्या ठीक काम करता है।
मेरा प्रश्न है: कोई उचित स्पष्टीकरण क्यों foundChanges चर हमेशा गलत है और है नहीं तो Linq इस समस्या के लिए एक उचित समाधान प्रदान करते हैं या मैं डेटा सेट में पुनरावृत्ति द्वारा परिवर्तन निर्धारित करने के लिए है क्या करना होगा
यहां कुछ और जानकारी दी गई हैं: प्रोग्रामिंग भाषा सी # है। मैं नेट फ्रेमवर्क 4.0 का उपयोग कर रहा हूं। मैं विंडोज 8 मशीन पर विकसित कर रहा हूं जैसा कि बताया गया डेटा डेटाबेस (एमएसएसक्यूएल सर्वर 2012 एक्सप्रेस) से आता है मेरा डेटासेट या डेटाटेबल्स हेवन जहां तक मुझे पता है कि कोई पीके है।
अग्रिम धन्यवाद
आमतौर पर आप जो करना चाहते हैं वह एक डेटासेट पुराना संस्करण लेता है और इसे संशोधित करता है। फिर पुराने संस्करण में सभी नए बदलाव होंगे। फिर आप डेटासेट diff = oldVersion.GetChanges() को कॉल कर सकते हैं। –
आपको यह उपयोगी मिल सकता है: http://stackoverflow.com/a/7518025/211627 – JDB