Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не удается обновить данные в бд из DataTable / 3 сообщений из 3, страница 1 из 1
23.01.2012, 07:25
    #37626334
Бабочка19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается обновить данные в бд из DataTable
Добрый день. Заполняю 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
24.01.2012, 05:51
    #37628229
Barkan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается обновить данные в бд из DataTable
Бабочка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
24.01.2012, 06:12
    #37628232
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается обновить данные в бд из DataTable
Или лишний AcceptChanges() убрать...
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не удается обновить данные в бд из DataTable / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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