With DataAdapter '.TableMappings... (see below) .SelectCommand = New SqlCommand("[spPlayerSelect]", DatabaseConnection.sqlconConnection) .SelectCommand.CommandType = System.Data.CommandType.StoredProcedure .SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, False, CType(0, Byte), CType(0, Byte), "", System.Data.DataRowVersion.Current, Nothing)) .SelectCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@PlayerID", System.Data.SqlDbType.Int, 4, "PlayerID")) .UpdateCommand = New SqlCommand("[spPlayerUpdate]", DatabaseConnection.sqlconConnection) .UpdateCommand.CommandType = System.Data.CommandType.StoredProcedure .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, False, CType(0, Byte), CType(0, Byte), "", System.Data.DataRowVersion.Current, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Prefix", System.Data.SqlDbType.VarChar, 10, "Prefix")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 15, "FirstName")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@MiddleName", System.Data.SqlDbType.VarChar, 1, "MiddleName")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 20, "LastName")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Suffix", System.Data.SqlDbType.VarChar, 5, "Suffix")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Address", System.Data.SqlDbType.VarChar, 100, "Address")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@City", System.Data.SqlDbType.VarChar, 20, "City")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@State", System.Data.SqlDbType.VarChar, 2, "State")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@PostalCode", System.Data.SqlDbType.VarChar, 15, "PostalCode")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Phone", System.Data.SqlDbType.VarChar, 15, "Phone")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Email", System.Data.SqlDbType.VarChar, 50, "Email")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@CreateDateTime", System.Data.SqlDbType.DateTime, 8, "CreateDateTime")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Active", System.Data.SqlDbType.Bit, 1, "Active")) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_PlayerID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "PlayerID", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Active", System.Data.SqlDbType.Bit, 1, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Active", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Address", System.Data.SqlDbType.VarChar, 100, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Address", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_City", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "City", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_CreateDateTime", System.Data.SqlDbType.DateTime, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "CreateDateTime", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Email", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Email", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.VarChar, 15, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "FirstName", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.VarChar, 20, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "LastName", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_MiddleName", System.Data.SqlDbType.VarChar, 1, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "MiddleName", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Phone", System.Data.SqlDbType.VarChar, 15, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Phone", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_PostalCode", System.Data.SqlDbType.VarChar, 15, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "PostalCode", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Prefix", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Prefix", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_State", System.Data.SqlDbType.VarChar, 2, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "State", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_Suffix", System.Data.SqlDbType.VarChar, 5, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Suffix", System.Data.DataRowVersion.Original, Nothing)) .UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@PlayerID", System.Data.SqlDbType.Int, 4, "PlayerID")) End With With DataSet.Tables("Player").Rows(0) '.Item("PlayerID") = _PlayerID .Item("Prefix") = _Prefix .Item("FirstName") = _FirstName .Item("MiddleName") = _MiddleName .Item("LastName") = _LastName .Item("Suffix") = _Suffix .Item("Address") = _Address .Item("City") = _City .Item("State") = _State .Item("PostalCode") = _PostalCode .Item("Phone") = _Phone .Item("Email") = _Email .Item("CreateDateTime") = _CreateDateTime .Item("Active") = _Active End With Dim RowsUpdated As Integer RowsUpdated = DataAdapter.Update(DataSet, "Player")I think it may have something to do with the DataAdapter's table mappings. Since the select command is working properly, I think that the DataAdapter has already generated it's own table mappings. However, I have tried using the TableMappings.AddRange(...) generated by the IDE immediately following the creation of the SelectCommand, but I get a "The DataTableMapping.SourceTable is required to be unique, 'Table' already exists in the collection" error. This error doesn't make sense to me because I modeled my code after the autogenerated stuff in a web form. And the same code does not cause an error when running it on a form.