powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не удается обновить данные в бд из DataTable
3 сообщений из 3, страница 1 из 1
Не удается обновить данные в бд из DataTable
    #37626334
Бабочка19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Заполняю datatablе значениями из базы. datatablе заполняю значениями из 2-х таблиц (использую объединенный запрос). Datatable в дальнейшем меняется, и эти изменения не получается внести в базу. Ошибки в процессе работы программы не возникает, просто бд не обновляется. Скажите пожалуйста в чем проблема. Заполнение datatable данными

sqlConnection = New SqlClient.SqlConnection("Data Source = *; User id = *; Password = *; database=* ;Integrated Security = False;")
sqlConnection.Open()
commandStrEmployee = "SEL ECT e.id_correspondent, e.surname, d.title,d.id_duty fr om Employee e inner join Duty d on e.id_duty=d.id_duty"
adapterEmployee = New SqlDataAdapter(commandStrEmployee, sqlConnection)
adapterEmployee.Fill(dtEmployee)
Внесение данных в datatable

Dim a As DataRow = Form1.dtEmployee.Rows(i)
a.BeginEdit()
a("id_duty") = Form1.dt_duty.Rows(b)("id_duty")
a("title") = Form1.dt_duty.Rows(b)("title")
a.EndEdit()
a.AcceptChanges()
Обновление бд

Form1.adapterEmployee.Update(Form1.dtEmployee)
Почему-то последняя строчка не срабатывает.
...
Рейтинг: 0 / 0
Не удается обновить данные в бд из DataTable
    #37628229
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабочка19,

Походу местная братва умаялась в битвах про ORM. Ж:)

В общем надо настраивать у SqlDataAdapter свойства InsertCommand, UpdateCommand, DeleteCommand.
Смею предположить, что данные изменяются в одной из таблиц.
Соответственно и команды надо настраивать на работу с изменяемой таблицей.

Для примера приведу код, где select делается из двух таблиц, а изменяется одна таблица.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Public NotInheritable Class dbeFASTENING
   
   Private Sub New()
      'private constructor
   End Sub
   
   Private Shared strSQL As String = ""
   
   Public Shared Function GetAllDataTable(ByVal UNT_ID As Integer) As DataTable
      strSQL = "select FST_ID, FST__MNF_ID, MNF_NAME, FST__UNT_ID " _
             & "from FASTENING join MANUFACTURE on FST__MNF_ID=MNF_ID " _
             & "where FST__UNT_ID=" & UNT_ID.ToString
      Return DBExecutor.ExecuteSelectCommand(strSQL)
   End Function
   
   Public Shared Sub UpdateRows(ByVal DT As DataTable, ByVal TR As SqlTransaction)
      Dim AD As New SqlDataAdapter()
      strSQL = "insert into FASTENING (FST__MNF_ID, FST__UNT_ID) values (@MNF_ID, @UNT_ID)"
      AD.InsertCommand = New SqlCommand(strSQL, DBExecutor.CNN, TR)
      AD.InsertCommand.Parameters.Add("@MNF_ID", SqlDbType.Int, 10, "FST__MNF_ID")
      AD.InsertCommand.Parameters.Add("@UNT_ID", SqlDbType.Int, 10, "FST__UNT_ID")
      strSQL = "update FASTENING set FST__MNF_ID=@MNF_ID, FST__UNT_ID=@UNT_ID where FST_ID=@FST_ID"
      AD.UpdateCommand = New SqlCommand(strSQL, DBExecutor.CNN, TR)
      AD.UpdateCommand.Parameters.Add("@MNF_ID", SqlDbType.Int, 10, "FST__MNF_ID")
      AD.UpdateCommand.Parameters.Add("@UNT_ID", SqlDbType.Int, 10, "FST__UNT_ID")
      AD.UpdateCommand.Parameters.Add("@FST_ID", SqlDbType.Int, 10, "FST_ID")
      strSQL = "delete from FASTENING where FST_ID=@FST_ID"
      AD.DeleteCommand = New SqlCommand(strSQL, DBExecutor.CNN, TR)
      AD.DeleteCommand.Parameters.Add("@FST_ID", SqlDbType.Int, 10, "FST_ID")
      AD.Update(DT)
   End Sub
   
End Class
...
Рейтинг: 0 / 0
Не удается обновить данные в бд из DataTable
    #37628232
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или лишний AcceptChanges() убрать...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не удается обновить данные в бд из DataTable
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]