Вместо использования Parameters.AddWithValue (...) используйте Parameters.Add (новый SqlParameter (...)) и используйте один из трех последних конструкторов для документов SqlParameter: Класс SqlParameter Документация MSDN .Они позволяют вам указать столбец, который будет использоваться во время выполнения для заполнения параметра.Например, вот строка из одной из моих текущих программ:
UpdateCommand.Parameters.Add(new OleDbParameter("FK_CustomerID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "FK_CustomerID", global::System.Data.DataRowVersion.Current, false, null));
Обратите внимание на второе использование "FK_CustomerID", которое указывает на использование этого столбца DataTable для параметра.
ОтносительноИспользуя транзакции, взгляните на это для некоторых идей: Транзакции с TableAdapters, подход ленивого человека .С уважением, Дрю