sqlcon.Open();
SqlTransaction Tran=sqlcon.BeginTransaction();
try
{
SqlCommand cmd=new SqlCommand(commitSql,sqlcon);
//这里我如果把她改成SqlCommand cmd=new SqlCommand();
cmd.CommandText=commitSql;
会报异常,说Connetion 的属性为初始化, 我怀疑是我得重新声明一个CONNECTION
结果还是同样得异常,知道我把它改成上面得才真确, 到底是什么原因???
//
cmd.Transaction=Tran;
cmd.ExecuteNonQuery();
Tran.Commit();
}
catch(Exception ex)
{
Tran.Rollback();
string error="9";
error+=ex.Message.ToString();
Session["error"]=error;
Response.Redirect("ErrorDisplay.aspx");
}
finally
{
sqlcon.Close();
}
SqlTransaction Tran=sqlcon.BeginTransaction();
try
{
SqlCommand cmd=new SqlCommand(commitSql,sqlcon);
//这里我如果把她改成SqlCommand cmd=new SqlCommand();
cmd.CommandText=commitSql;
会报异常,说Connetion 的属性为初始化, 我怀疑是我得重新声明一个CONNECTION
结果还是同样得异常,知道我把它改成上面得才真确, 到底是什么原因???
//
cmd.Transaction=Tran;
cmd.ExecuteNonQuery();
Tran.Commit();
}
catch(Exception ex)
{
Tran.Rollback();
string error="9";
error+=ex.Message.ToString();
Session["error"]=error;
Response.Redirect("ErrorDisplay.aspx");
}
finally
{
sqlcon.Close();
}
cmd.CommandText=commitSql;
cmd.Transaction=Tran;这几个语句里虽然你给cmd的Transaction分了事务对象Tran,但是你的cmd依然要有一个Connection来设置.如下改一下:
SqlCommand cmd=new SqlCommand();
cmd.Connection = sqlcon;
cmd.CommandText=commitSql;
cmd.Transaction=Tran;或用sqlcon.CreateCommand来建立一个Command对象也可以.因为你只生成一个新的Sqlcommand对象,它自己没有一个连接对象和它关联.只有给它分配了才行,默认是没有弃置的.
cmd.CommandText=commitSql;
cmd.Transaction=Tran;这几个语句里虽然你给cmd的Transaction分了事务对象Tran,但是你的cmd依然要有一个Connection来设置.如下改一下:
SqlCommand cmd=new SqlCommand();
cmd.Connection = sqlcon;
cmd.CommandText=commitSql;
cmd.Transaction=Tran;或用sqlcon.CreateCommand来建立一个Command对象也可以.因为你只生成一个新的Sqlcommand对象,它自己没有一个连接对象和它关联.只有给它分配了才行,默认是没有弃置的.