zoukankan      html  css  js  c++  java
  • C#内置函数 RunSql的使用

    作用批量执行sql语句
    表达式.RunSQL(SQLStatement,UseTransaction)
    表达式.一个代表DoCmd对象的变量。

    注释:sqlstatement参数的最大长度为 32,768 个字符(而"宏"窗口中的 SQL 语句操作参数的最大长度为 256 个字符)。

         官方说仅能用于Microsoft Access 数据库,但是我亲自测试oracle也行

    例子:

    /// <summary>
    /// 执行SQL(重载参数IID 由Long变成String)
    /// </summary>
    /// <param name="iid">批量sql的where条件</param>
    /// <param name="sqlList">list类型的sql</param>
    /// <param name="errmsg">返回的结果信息</param>
    /// <param name="idaNew">数据库对象</param>
    /// <returns></returns>
    public bool RunSqls(string iid, List<string> sqlList, out string errmsg, ref IDataAccess idaNew)
    {
    errmsg = string.Empty;
    bool bReturn = false;
    if (sqlList == null || sqlList.Count == 0)
    {
    errmsg = "[runSqls()]参数[sqlList]为空,没有sql可执行。";
    return false;
    }

    //db.BeginTransaction();
    string newSql = string.Empty;
    try
    {
    //循环list中的每个sql
    foreach (string sql in sqlList)
    {
    if (sql == string.Empty) continue;
    newSql = sql;
    if (sql.IndexOf(":IID") != -1) //如果存在参数iid
    {
    newSql = sql.Replace(":IID", iid.ToString());
    }
    idaNew.RunSql(newSql);//可以重载参数是否错误一个所有回滚 不用单独启动事务
    //db.Execute(newSql);
    }
    //db.CompleteTransaction();

    bReturn = true;
    }
    catch (Exception e)
    {
    errmsg = e.Message;
    CommomBus.Info(e);
    //db.AbortTransaction();
    }
    return bReturn;
    }

  • 相关阅读:
    技术面试之经验总结
    为何只有两篇文章?
    LOJ6364 烂柯
    mysql批量更新数据(性能优化)
    一个对象的key引发的血案
    总结与元素坐标相关的属性(再也搞不混了)
    利用nodejs搭建服务器,测试AJAX
    初探jquery之强大丰富的选择器
    Web前端开发规范手册
    IE8下标签float导致的bug。
  • 原文地址:https://www.cnblogs.com/isking/p/6228693.html
Copyright © 2011-2022 走看看