2010-04-06 12 views
5

हटाए गए पंक्तियों से मैं जानकारी कैसे प्राप्त कर सकता हूं। मैंने डेटासेट में तालिका से कुछ पंक्तियां हटा दी हैं, फिर मैं हटाए गए पंक्तियों को प्राप्त करने के लिए विधि GetChanges (DataRowState.Deleted) विधि का उपयोग करता हूं। मैंने सर्वर की ओर मूल तालिका में हटाई गई पंक्तियों को आजमाया, लेकिन यह इन त्रुटियों के साथ समाप्त हुआ।हटाए गए पंक्ति से जानकारी पुनर्प्राप्त कैसे करें

सिस्टम। डेटा। हटाया गया RowInaccessibleException: हटाए गए पंक्ति की जानकारी पंक्ति के माध्यम से नहीं पहुंचा जा सकता है।

सही तरीका क्या है? मेरा कोड, कोई सलाह है? सभी को धन्यवाद

Dataset ds = //get dataset from client side 
    //get changes 
    DataTable delRows = ds.Tables[0].GetChanges(DataRowState.Deleted); 

    //try delete rows in table in DB 
        if (delRows != null) 
        { 
         string connStr = WebConfigurationManager.ConnectionStrings["Employees"].ConnectionString; 
         conn = new SqlConnection(connStr); 

         conn.Open(); 

         for (int i = 0; i < delRows.Rows.Count; i++) 
         { 
          string cmdText = string.Format("DELETE Tab1 WHERE [email protected]"); 

          cmd = new SqlCommand() { Connection = conn, CommandText = cmdText }; 

//here is problem, I need get surnames from rows which was deleted 
          var sqlParam = new SqlParameter(@"Surname", SqlDbType.VarChar) { Value = delRows.Rows[i][1].ToString() }; 
          cmd.Parameters.Add(sqlParam); 


          cmd.CommandText = cmdText; 
          cmd.Connection = conn; 

          cmd.ExecuteNonQuery(); 
         } 
        } 

उत्तर

6

आपको यह निर्दिष्ट करना होगा कि आप DataRow के मूल संस्करण को देखना चाहते हैं। डिफ़ॉल्ट रूप से DataRowVersion.Current का उपयोग किया जाता है।

Value = delRows.Rows[i][1, DataRowVersion.Original].ToString() 
संबंधित मुद्दे