有礼先.
现有表A,内有字段 uid,uname.表B,内有字段uid,upwd.当表A插入数据后,表B也插入一条数据.如果都插入成功则返回1,否则返回0.要求使用逻辑层调用数据访问层方法并传参数.然后数据访问层根据所得的参数调用数据库的存储过程.并请在调用存储过程的代码尽可能每行都添加注释.我是新手,越详细越好.谢谢.另请教怎样使用ADO.NET级编写事务处理.
要求使用逻辑层调用数据访问层方法并传参数.然后数据访问层根据所得的参数调用事务处理.并请在代码中尽可能每行都添加注释.谢谢.
现有表A,内有字段 uid,uname.表B,内有字段uid,upwd.当表A插入数据后,表B也插入一条数据.如果都插入成功则返回1,否则返回0.要求使用逻辑层调用数据访问层方法并传参数.然后数据访问层根据所得的参数调用数据库的存储过程.并请在调用存储过程的代码尽可能每行都添加注释.我是新手,越详细越好.谢谢.另请教怎样使用ADO.NET级编写事务处理.
要求使用逻辑层调用数据访问层方法并传参数.然后数据访问层根据所得的参数调用事务处理.并请在代码中尽可能每行都添加注释.谢谢.
btw:郁闷,加的好友太多了,现在加好友都是非法请求了。连好友页面也打不开。连私信页面也打不开。
btw:CSDN当时没有测试过加好友很多的情况的吗?郁闷。现在一点加好友就出错。
/// 执行两条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLString1"></param>
/// <param name="SQLString2"></param>
public static void ExecuteSqlTran(string SQLString1, string SQLString2)
{
using (SqlConnection connection = new SqlConnection(connstr))
{
connection.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
SqlTransaction tx = connection.BeginTransaction();
cmd.Transaction = tx;
try
{
cmd.CommandText = SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText = SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
connection.Close();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
public static int ExecuteNonQuery( CommandType commandType, string cmdText)
{
int nums = 0;
SqlCommand myCmd = new SqlCommand(cmdText, conn);
myCmd.CommandType = commandType;
try
{
conn.Open();
nums = myCmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception)
{ throw;
}
finally
{
conn.Close();
}
return nums;
}
比较下自己改
using (SqlConnection connection = new SqlConnection(connstr))
{
connection.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
SqlTransaction tx = connection.BeginTransaction();
cmd.Transaction = tx;
try
{
cmd.CommandText = SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText = SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
connection.Close();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}