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;
}

posted @ 2016-12-28 11:11  下页小希  阅读(1099)  评论(0编辑  收藏  举报