How to understand SqlHelper Database Auxiliary Operation Class
< tableNames.Length; index++) { if (tableNames[index] == null || tableNames[index].Length == 0) throw new ArgumentException("The tableNames parameter must contain a list of tables, a value was provided as null or empty string.", "tableNames"); dataAdapter.TableMappings.Add(tableName, tableNames[index]); tableName += (index + 1).ToString(); } } // Fill the DataSet using default values for DataTable names, etc dataAdapter.Fill(dataSet); // Detach the SqlParameters from the command object, so they can be used again command.Parameters.Clear(); } if (mustCloseConnection) connection.Close(); } #endregion #region UpdateDataset /// /// Executes the respective command for each inserted, updated, or deleted row in the DataSet. /// /// /// e.g.: /// UpdateDataset(conn, insertCommand, deleteCommand, updateCommand, dataSet, "Order"); /// /// A valid transact-SQL statement or stored procedure to insert new records into the data source /// A valid transact-SQL statement or stored procedure to delete records from the data source /// A valid transact-SQL statement or stored procedure used to update records in the data source /// The DataSet used to update the data source /// The DataTable used to update the data source. public static void UpdateDataset(SqlCommand insertCommand, SqlCommand deleteCommand, SqlCommand updateCommand, DataSet dataSet, string tableName) { if (insertCommand == null) throw new ArgumentNullException("insertCommand"); if (deleteCommand == null) throw new ArgumentNullException("deleteCommand"); if (updateCommand == null) throw new ArgumentNullException("updateCommand"); if (tableName == null || tableName.Length == 0) throw new ArgumentNullException("tableName"); // Create a SqlDataAdapter, and dispose of it after we are done using (SqlDataAdapter dataAdapter = new SqlDataAdapter()) { // Set the data adapter commands dataAdapter.UpdateCommand = updateCommand; dataAdapter.InsertCommand = insertCommand; dataAdapter.DeleteCommand = deleteCommand; // Update the dataset changes in the data source dataAdapter.Update(dataSet, tableName); // Commit all the changes made to the DataSet dataSet.AcceptChanges(); } } #endregion #region CreateCommand /// /// Simplify the creation of a Sql command object by allowing /// a stored procedure and optional parameters to be provided /// /// /// e.g.: /// SqlCommand command = CreateCommand(conn, "AddCustomer", "CustomerID", "CustomerName"); /// /// A valid SqlConnection object /// The name of the stored procedure /// An array of string to be assigned as the source columns of the stored procedure parameters /// A valid SqlCommand object public static SqlCommand CreateCommand(SqlConnection connection, string spName, params string[] sourceColumns) { if (connection == null) throw new ArgumentNullException("connection"); if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); // Create a SqlCommand SqlCommand cmd = new SqlCommand(spName, connection); cmd.CommandType = CommandType.StoredProcedure; // If we receive parameter values, we need to figure out where they go if ((sourceColumns != null) && (sourceColumns.Length >
0)) {/ / Pull the parameters for this stored procedure from the parameter cache (or discover them & populate the cache) SqlParameter [] commandParameters = SqlHelperParameterCache.GetSpParameterSet (connection, spName); / / Assign the provided source columns to these parameters based on parameter order for (int index = 0; index
< sourceColumns.Length; index++) commandParameters[index].SourceColumn = sourceColumns[index]; // Attach the discovered parameters to the SqlCommand object AttachParameters(cmd, commandParameters); } return cmd; } #endregion #region ExecuteNonQueryTypedParams /// /// Execute a stored procedure via a SqlCommand (that returns no resultset) against the database specified in /// the connection string using the dataRow column values as the stored procedure's parameters values. /// This method will query the database to discover the parameters for the /// stored procedure (the first time each stored procedure is called), and assign the values based on row values. /// /// A valid connection string for a SqlConnection /// The name of the stored procedure /// The dataRow used to hold the stored procedure's parameter values. /// An int representing the number of rows affected by the command public static int ExecuteNonQueryTypedParams(String connectionString, String spName, DataRow dataRow) { if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName"); // If the row has values, the store procedure parameters must be initialized if (dataRow != null && dataRow.ItemArray.Length >