// First the connection, transaction and command is set up: this.oConnection.Open(); SqlTransaction oTrans = this.oConnection.BeginTransaction(); SqlCommand Command = new SqlCommand(); Command.CommandType = CommandType.StoredProcedure; Command.Connection = this.oConnection; Command.Transaction = oTrans; // Then each individual table in the DataSet is updated like this: Command.CommandText = "MyStoredProcForTable1"; this.SetBasicParamters(Command, Table1, Table1.Rows[0]); Command.ExecuteNonQuery(); Command.CommandText = "MyStoredProcForTable2"; this.SetBasicParamters(Command, Table2, Table2.Rows[0]); Command.ExecuteNonQuery(); // the above work fine because I'm using the SetBasicParameters() method // it's when it hits this next one (which uses the other method, SetNamedParameters) // that it crashes: Command.CommandText = "MyStoredProcForWeirdTable"; this.SetNamedParameters(Command, WeirdTable, WeirdTable.Rows[0]); Command.ExecuteNonQuery(); // it crashed on the command to DeriveParameters: protected void SetNamedParameters(SqlCommand Command, DataTable Table, DataRow Row) { Command.Parameters.Clear(); SqlCommandBuilder.DeriveParameters(Command); // ... rest of method }Does anyone have *any* idea what's going on and how I can get around this?