C# system.invalidoperationexception异常
我正在尝试运行此代码C# system.invalidoperationexception异常,c#,transactions,invalidoperationexception,sqlcedatareader,C#,Transactions,Invalidoperationexception,Sqlcedatareader,我正在尝试运行此代码 public Exception SetData(string Data , long NoOfColumnsAllowed) { try { con = new SqlCeConnection(conectionstring); con.Open(); transaction = con.BeginTransaction(); com =
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<=@sno";
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;
}
}
public Exception SetData(字符串数据,长NoOfColumnsAllowed)
{
尝试
{
con=新的SqlCeConnection(conectionstring);
con.Open();
事务=con.BeginTransaction();
com=新的SqlCeCommand();
com.Transaction=交易;
com.CommandText=“从[复制]中选择计数(*)”;
com.Connection=con;
sdr=com.ExecuteReader();
while(sdr.Read())
{
noOfColumns=sdr.GetInt32(0);
}
if(noOfColumns>NoOfColumnsAllowed)
{
long NOOFCOLUMS TOBEDELETED=noOfColumns-NoOfColumnsAllowed;
com.CommandText=“从[Copy]删除,其中Sno只需在while循环之后调用sdr.Close();因为这就是错误所抱怨的