zoukankan      html  css  js  c++  java
  • ADO执行事务

    在工作中遇到,需要批量提交的。在sql2008以后有表变量定义,可以实现。但个人比较习惯用C#,就有下面代码,直接上代码。。。

    using (SqlConnection conn = new SqlConnection(Conn.Connection))
    {
    conn.Open();
    SqlCommand comm = new SqlCommand() { Connection = conn };
    SqlTransaction tran = conn.BeginTransaction();
    comm.Transaction = tran;
    try
    {
    comm.CommandType = CommandType.StoredProcedure;
    comm.CommandText = "tb_role_INSERT";
    SqlParameter[] parms = new SqlParameter[] {
    new SqlParameter {ParameterName="@code",Value=array[0].ToString(),SqlDbType=SqlDbType.NVarChar, Size = 100 },
    new SqlParameter {ParameterName="@name",Value=array[1].ToString(),SqlDbType=SqlDbType.NVarChar, Size = 500 },
    new SqlParameter {ParameterName="@remark",Value=array[2].ToString(),SqlDbType=SqlDbType.NText},
    new SqlParameter {ParameterName="@create_time",Value=DateTime.Now,SqlDbType=SqlDbType.DateTime},
    new SqlParameter {ParameterName="@create_user_id",Value=Lib.ReadCookie("UserID"),SqlDbType=SqlDbType.Int},
    new SqlParameter {ParameterName="@is_active",Value=1,SqlDbType=SqlDbType.Int},
    new SqlParameter {ParameterName="@manufacturer_id",Value=Lib.ReadCookie("ManuID"),SqlDbType=SqlDbType.Int},
    new SqlParameter {ParameterName="@custid",Value=Lib.ReadCookie("CustID"),SqlDbType=SqlDbType.Int},
    new SqlParameter{ParameterName="@tb_roleID",Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int},
    };
    comm.Parameters.AddRange(parms);
    comm.ExecuteNonQuery();
    int id = Convert.ToInt32(comm.Parameters["@tb_roleID"].Value);

    ArrayList sqlList = GetRolePermissionList(id, array[7].ToString());
    for (int i = 0; i < sqlList.Count; i++)
    {
    string str2 = sqlList[i].ToString();
    if (str2.Trim().Length > 1)
    {
    comm.CommandType = CommandType.Text;
    comm.CommandText = str2;
    comm.ExecuteNonQuery();
    }
    }

    tran.Commit();
    }
    catch (SqlException ex)
    {
    tran.Rollback();
    messge = ex.Message;
    }
    }

  • 相关阅读:
    linux中的find命令——查找文件名
    int main(int argc,char* argv[])详解
    VIM进阶学习之几种模式和按键映射
    Fortran编译多个文件(转载)
    Vimdiff---VIM的比较和合并工具
    两篇很牛的vim使用技巧
    程序员软件的罪恶:从不清楚地汇报事故原因
    Free symbol is Harmful
    return语言结构 VS. scala默认返回值
    踩过的“坑”: 命令行指定Java class path
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/5665747.html
Copyright © 2011-2022 走看看