-1
我試圖運行此代碼system.invalidoperationexception
public Exception SetData(string Data , long NoOfColumnsAllowed)
{
try
{
con = new SqlCeConnection(conectionstring);
con.Open();
transaction = con.BeginTransaction();
com = new SqlCeCommand();
com.Transaction = transaction;
com.CommandText = "Select count(*) from [Copy]";
com.Connection = con;
sdr = com.ExecuteReader();
while (sdr.Read())
{
noOfColumns = sdr.GetInt32(0);
}
if (noOfColumns > NoOfColumnsAllowed)
{
long NoOfColumsToBeDeleted = noOfColumns - NoOfColumnsAllowed;
com.CommandText = "delete from [Copy] where Sno<[email protected]";
com.Parameters.AddWithValue("@sno", NoOfColumsToBeDeleted);
com.ExecuteNonQuery();
}
com.CommandText = "Insert into [Copy] (Data) values (@data)";
com.Parameters.AddWithValue("@data", Data);
com.ExecuteNonQuery();
transaction.Commit();
con.Close();
return null;
}
catch (Exception ex)
{
try
{
transaction.Rollback();
}
catch (Exception)
{
}
con.Close();
return ex;
}
}
異常好發 -
system.invalidoperationexception:本次交易無法 承諾,如果有任何打開的遊標的範圍交易的這個 。在提交更改之前,確保所有數據讀取器/結果集都明確關閉了 。
我是新的事務處理,無法找到關於打開的光標的任何有價值的解決方案。是否有代碼有問題,或者我必須明確關閉數據讀取器,如果是的話請告訴我怎麼做?