Прежде всего, спасибо за ваш ответ, Картер, это мне очень помогло!
но я не могу обработать деталь с параметрами
Вы можете сделать то же самое для любого TableAdapter, который был создан для ваших наборов данных. Если у вас есть несколько адаптеров таблиц, которые должны использовать одну и ту же транзакцию, то в дополнение к «CreateTransaction» вы должны сделать «SetTransaction» и указать, что Transaction является параметром.
, поэтому я могу обрабатывать 1 транзакцию с 1 табличным адаптером, но не 1 транзакцию с 2 табличными адаптерами:
Я делаю это для школьного проекта, и мне очень нужна твоя помощь !!
Вот код для добавления нового материала и исторической цены (изменяющаяся цена, например, на топливо; я сохраняю ее в связанной таблице для материала в базе данных):
Namespace DataSetTableAdapters
Partial Public Class MaterialPriceTableAdapter
Public Function SetTransaction() As Data.IDbTransaction
Dim oConnection = Me.CommandCollection(0).Connection
oConnection.Open()
Dim oTrans = oConnection.BeginTransaction()
For Each cmd In Me.CommandCollection
cmd.Connection = oConnection
cmd.Transaction = oTrans
Next
Return oTrans
End Function
End Class
Partial Public Class MaterialTableAdapter
Public Function CreateTransaction(ByVal MaterialPrice As System.Data.Odbc.OdbcTransaction) As Data.IDbTransaction
Dim oConnection = Me.CommandCollection(0).Connection
oConnection.Open()
Dim oTrans = oConnection.BeginTransaction()
For Each cmd In Me.CommandCollection
cmd.Connection = oConnection
cmd.Transaction = oTrans
Next
Return oTrans
End Function
End Namspace
`
и теперь код в форме:
Public Class AddMaterial
Dim material As New DataSetBATableAdapters.MaterialTableAdapter
Dim materialprice As New DataSetBATableAdapters.MaterialPriceTableAdapter
Dim oTrans = material.CreateTransaction(materialprice.SetTransaction())
Private Sub Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
Try
material.InsertQuery(NameTextBox.Text, UnitComboBox.SelectedValue)
materialprice.InsertQuery(Date_BeginDateTimePicker.Value, PriceTextBox.Text, Date_EndDateTimePicker.Value, Me.LkwTableAdapter.ScalarQuery())
oTrans.Commit()
Catch ex As Exception
oTrans.Rollback()
MsgBox("Error by Insert")
End Try
Me.Close
End Sub
End Class
если я сохраняю новую запись, otrans.commit не отправляет файл materialprice.insertquery. Что я делаю неправильно? если у вас есть идея, что это, пожалуйста, скажите мне
спасибо,
Xeras