/// <summary> /// Initializes a new instance of the <see cref="ParametrizedCommandBuilder"/> class. /// </summary> /// <param name="factory">The factory.</param> public CommandBuilder(IDBFactory factory) { if (factory == null) { throw new ArgumentNullException("factory"); } _factory = factory; _convertor = factory.Convertor; command = _factory.CreateCommand(); command.CommandType = CommandType.Text; }
/// <summary> ///执行一个不需要返回值的IDbCommand命令,通过指定专用的连接字符串。 /// 使用参数数组形式提供参数列表 /// </summary> /// <remarks> /// 使用示例: /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new DbParameter("@prodid", 24)); /// </remarks> /// <param name="connectionString">一个有效的数据库连接字符串</param> /// <param name="commandType">IDbCommand命令类型 (存储过程, T-SQL语句, 等等。)</param> /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param> /// <param name="commandParameters">以数组形式提供IDbCommand命令中用到的参数列表</param> /// <returns>返回一个数值表示此IDbCommand命令执行后影响的行数</returns> public int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params DbParameter[] commandParameters) { if (string.IsNullOrEmpty(connectionString)) { connectionString = ConnectionStringLocalTransaction; } IDbCommand cmd = dbF.CreateCommand(); using (IDbConnection conn = dbF.CreateConnection()) { //通过PrePareCommand方法将参数逐个加入到IDbCommand的参数集合中 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); //清空IDbCommand中的参数列表 cmd.Parameters.Clear(); conn.Close(); return(val); } }