自己动手写ORM框架(二):AdoHelper支持多数据库操作的封装(2)(一)

2014-11-24 11:47:20 · 作者: · 浏览: 27
“奋斗”前辈在这一章继续进行AdoHelper进行数据库操作的分析
在上一篇文章中已经分析了AdoHelper的部分代码,接下来将继续分析剩余的部分代码,这里分析ExecuteNonQuery方法的实现,代码块1-1:
//
//通过提供的参数,执行无结果集的数据库操作命令
// 并返回执行数据库操作所影响的行数。
//
// 数据库连接字符串
// 执行命令的类型(存储过程或T-SQL,等等)
// 存储过程名称或者T-SQL命令行<
// 执行命令所需的参数数组
// 返回通过执行命令所影响的行数
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
IDbCommand cmd = DbFactory.CreateDbCommand();
using (IDbConnection conn = DbFactory.CreateDbConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
//=============================================================================================
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText)
{
IDbCommand cmd = DbFactory.CreateDbCommand();
using (IDbConnection conn = DbFactory.CreateDbConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, null);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
//=============================================================================================
public static int ExecuteNonQuery(IDbConnection connection, CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
IDbCommand cmd = DbFactory.CreateDbCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
//=============================================================================================
public static int ExecuteNonQuery(IDbConnection connection, CommandType cmdType, string cmdText)
{
IDbCommand cmd = DbFactory.CreateDbCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, null);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
//=============================================================================================
//
//通过提供的参数,执行无结果集返回的数据库操作命令
//并返回执行数据库操作所影响的行数。
//
//
// e.g.:
// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
//
// sql事务对象
// 执行命令的类型(存储过程或T-SQL,等等)
// 存储过程名称或者T-SQL命令行<
// 执行命令所需的参数数组
// 返回通过执行命令所影响的行数
public static int ExecuteNonQuery(IDbTransaction trans, CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
IDbConnection conn = null;
if (trans == null)
{
conn = DbFactory.CreateDbConnection(ConnectionString);
}
else
{
conn = trans.Connection;
}
IDbCommand cmd = DbFactory.CreateDbCommand();
PrepareCommand(cmd, conn, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
//=========================================================================================