SqlConnection 和 SqlTrasaction应该先dispose哪一个?
我的代码
string connstr= @\"Data Source=.\sql2k5;Initial Catalog=SQLStudy; Integrated Security=SSPI\";
SqlConnection conn = null;
SqlTransaction trans = null;
try
{
conn = new SqlConnection(connstr);
conn.Open();
trans = conn.BeginTransaction();
string sql = \"Insert into Student values(100, 'ak47')\";
// Must assign both transaction object and connection
// to Command object for a pending local transaction
//new SqlCommand(sql, trans.Connection);会报错!
SqlCommand command = new SqlCommand(sql, trans.Connection, trans);
command.ExecuteNonQuery();
trans.Commit();
}
catch (Exception exp)
{
Console.WriteLine(exp.Message);
if(trans != null)
{
trans.Rollback();
}
}
finally
{
if(conn != null)
{
conn.Close();
}
if(trans != null)
{
trans.Dispose();
}
}
MSDN
using (SqlConnection conn = new SqlConnection(dbConString))
{
conn.Open();
using (SqlTransaction trans = conn.BeginTransaction())
{
try
{
...
trans.Commit();
}
catch
{
trans.Rollback();
}
}
}
