नहीं बदलता है मुझे ADO.NET 2.0 विलय/आयात डेटा के साथ समस्याएं आ रही हैं। मुझे एक सामान्य तालिका से डेटा को एक समान स्कीमा बनाए रखने वाली दोनों तालिकाओं के साथ अद्यतन/सम्मिलित करने की आवश्यकता है। निम्नलिखित कोड अच्छा काम करता है स्थानीय स्तर पर है, लेकिन डेटाबेस में परिवर्तन कर नहीं करता है:DataTable.Merge और DataTable.ImportRow RowState
OleDbDataAdapter localDA = loadLocalData();
OleDbDataAdapter hostedDA = loadHostedData();
DataSet dsLocal = new DataSet();
localDA.Fill(dsLocal);
DataSet dsChanges = new DataSet();
hostedDA.Fill(dsChanges);
dsLocal.Tables[0].Merge(dsChanges.Tables[0],false);
localDA.Update(dsLocal.Tables[0]);
ही इस कोड स्निपेट के साथ सत्य है:
OleDbDataAdapter localDA = loadLocalData();
OleDbDataAdapter hostedDA = loadHostedData();
DataSet dsLocal = new DataSet();
localDA.Fill(dsLocal);
DataSet dsChanges = new DataSet();
hostedDA.Fill(dsChanges);
foreach (DataRow changedRow in dsChanges.Tables[0].Rows)
{
if (recordExists(dsLocal.Tables[0], changedRow["ID"]))
{
}
else
{
dsLocal.Tables[0].ImportRow(changedRow);
}
}
localDA.Update(dsLocal.Tables[0]);
जब मैं के लिए बदल/संलग्न RowState संपत्ति को देखा पंक्तियां वे "अपरिवर्तित" रहती हैं। यदि संभव हो तो मैं कॉलम मैपिंग डेटा से बचने के लिए चाहता हूं, जो मुझे NewRow() विधि का उपयोग करके और मौजूदा पंक्ति को संशोधित करने के लिए करना पड़ सकता है।
मैं ऐसे समाधान के साथ आ सकता हूं जो आयात पंक्ति का उपयोग करते समय रोस्टेट को संशोधित करता है। निम्नलिखित कोड स्निपेट काम करेगा: dsLocal.Tables [0] Iportport (changeRow); dsLocal.Tables [0] .Rows [dsLocal.Tables [0] .Rows.Count - 1] .SetAdded(); हालांकि, यह पंक्तियों को जोड़ने और पंक्तियों को अपडेट करने पर ही काम करता है। मर्ज पर कोई भी विचार बहुत उपयोगी होगा! –