我用事务做了一个表的插入及更新,可是编译时没错。就是不能完成对表的更新。请问是怎么回事。
public class TransCls
{
public SqlConnection sqlConnection;
public SqlCommand updateCommand,insertCommand,selectCommand;
public SqlTransaction SqlTrans;
public SqlDataReader readval;
int reccount;
public string Tran(string ano,string atype,string tdate,float tamt )
{
string retval=null;
sqlConnection = new SqlConnection ("Server=localhost;database=AA;user id=sa;password=");
sqlConnection.Open();
SqlTrans = sqlConnection.BeginTransaction ();
insertCommand=new SqlCommand();
updateCommand = new SqlCommand();
selectCommand=new SqlCommand();
insertCommand.Connection = sqlConnection;
try
{
insertCommand.Transaction =SqlTrans;
insertCommand.CommandText = (@"INSERT INTO [transtion] VALUES ('" + ano + @"','" + atype + @"','" + tdate + @"', '" + tamt + @"')");
readval=insertCommand.ExecuteReader ();
reccount=(readval.RecordsAffected);
retval+="Status..." + reccount.ToString () + " Record Inserted";
readval.Close ();
if (reccount == 1)
{
updateCommand = new SqlCommand(@"update [products1] set cunts=cunts - '" + tamt + @"' where pname='" + ano + @"'",sqlConnection);
updateCommand.Transaction = SqlTrans;
int rec=updateCommand.ExecuteNonQuery ();
SqlTrans.Commit();
retval+="Commit Successful";
}
else
{
SqlTrans.Rollback();
retval+="Rollback Transaction";
}
}
catch(Exception e)
{
retval+="Error generated while doing transaction\n" + e.Message.ToString ();
//SqlTrans.Rollback ();
retval+="Rollback Transaction";
}
sqlConnection.Close();
return retval;
}
}
public class TransCls
{
public SqlConnection sqlConnection;
public SqlCommand updateCommand,insertCommand,selectCommand;
public SqlTransaction SqlTrans;
public SqlDataReader readval;
int reccount;
public string Tran(string ano,string atype,string tdate,float tamt )
{
string retval=null;
sqlConnection = new SqlConnection ("Server=localhost;database=AA;user id=sa;password=");
sqlConnection.Open();
SqlTrans = sqlConnection.BeginTransaction ();
insertCommand=new SqlCommand();
updateCommand = new SqlCommand();
selectCommand=new SqlCommand();
insertCommand.Connection = sqlConnection;
try
{
insertCommand.Transaction =SqlTrans;
insertCommand.CommandText = (@"INSERT INTO [transtion] VALUES ('" + ano + @"','" + atype + @"','" + tdate + @"', '" + tamt + @"')");
readval=insertCommand.ExecuteReader ();
reccount=(readval.RecordsAffected);
retval+="Status..." + reccount.ToString () + " Record Inserted";
readval.Close ();
if (reccount == 1)
{
updateCommand = new SqlCommand(@"update [products1] set cunts=cunts - '" + tamt + @"' where pname='" + ano + @"'",sqlConnection);
updateCommand.Transaction = SqlTrans;
int rec=updateCommand.ExecuteNonQuery ();
SqlTrans.Commit();
retval+="Commit Successful";
}
else
{
SqlTrans.Rollback();
retval+="Rollback Transaction";
}
}
catch(Exception e)
{
retval+="Error generated while doing transaction\n" + e.Message.ToString ();
//SqlTrans.Rollback ();
retval+="Rollback Transaction";
}
sqlConnection.Close();
return retval;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货