有礼先.
现有表A,内有字段 uid,uname.表B,内有字段uid,upwd.当表A插入数据后,表B也插入一条数据.如果都插入成功则返回1,否则返回0.要求使用逻辑层调用数据访问层方法并传参数.然后数据访问层根据所得的参数调用数据库的存储过程.并请在调用存储过程的代码尽可能每行都添加注释.我是新手,越详细越好.谢谢.另请教怎样使用ADO.NET级编写事务处理.
要求使用逻辑层调用数据访问层方法并传参数.然后数据访问层根据所得的参数调用事务处理.并请在代码中尽可能每行都添加注释.谢谢.

解决方案 »

  1.   

    帮忙顶一下,让了解的人来解答.btw:他妈的,我还是CSDN论坛首页的常驻专家门诊(JAVA板块)呢,居然在JAVA板块既不能发新贴,也不能回复。
    btw:郁闷,加的好友太多了,现在加好友都是非法请求了。连好友页面也打不开。连私信页面也打不开。
    btw:CSDN当时没有测试过加好友很多的情况的吗?郁闷。现在一点加好友就出错。
      

  2.   

            /// <summary>
            /// 执行两条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();
                    }
                }
            } 
      

  3.   


      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;
            }
     
    比较下自己改
      

  4.   

    事务操作如下:
    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();
                    }