Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Опять про DataGridView - Visual Basic .NET / 6 сообщений из 6, страница 1 из 1
25.04.2018, 10:43
    #39635883
Wurgengel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять про DataGridView - Visual Basic .NET
Есть функция обновления, которая обновляет данные по текущему состоянию DataGridView:
Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Private Sub updateAuthor(rev As Boolean)
        Me.Validate()
        Me.AuthorBindingSource.EndEdit()
 
        Dim deleteAuthors As СправочникppДанныеDataSet.AuthorDataTable = CType(
            СправочникppДанныеDataSet.Author.GetChanges(Data.DataRowState.Deleted), 
            СправочникppДанныеDataSet.AuthorDataTable)
 
        Dim newAuthors As СправочникppДанныеDataSet.AuthorDataTable = CType(
            СправочникppДанныеDataSet.Author.GetChanges(Data.DataRowState.Added), 
            СправочникppДанныеDataSet.AuthorDataTable)
 
        Dim modifiedAuthors As СправочникppДанныеDataSet.AuthorDataTable = CType(
            СправочникppДанныеDataSet.Author.GetChanges(Data.DataRowState.Modified), 
            СправочникppДанныеDataSet.AuthorDataTable)
 
        Try
 
            ' Удаление всех удаленных
            If Not deleteAuthors Is Nothing Then
                AuthorTableAdapter.Update(deleteAuthors)
            End If
 
            ' Добавление новых
            If Not newAuthors Is Nothing Then
                AuthorTableAdapter.Update(newAuthors)
            End If
            ' Обновление измененных
            If Not modifiedAuthors Is Nothing Then
                AuthorTableAdapter.Update(modifiedAuthors)
            End If
 
            СправочникppДанныеDataSet.AcceptChanges()
 
        Catch ex As Exception
            MsgBox("Ошибка обновления")
 
        Finally
            If Not deleteAuthors Is Nothing Then
                deleteAuthors.Dispose()
            End If
            If Not newAuthors Is Nothing Then
                newAuthors.Dispose()
            End If
            If Not modifiedAuthors Is Nothing Then
                modifiedAuthors.Dispose()
            End If
        End Try
    End Sub


Если добавлять новые записи, то id у них идет в минусовую. То есть -1, -2, -3 и т.д.
Когда я вызываю эту функцию, все сохраняется в БД нормально, но id не обновляются. Что я пропустил?
Пробовал
Код: vbnet
1.
AuthorBindingSource.ResetBindings(False)


Все равно не обновляет.
Вот это
Код: vbnet
1.
Me.AuthorTableAdapter.Fill(Me.СправочникppДанныеDataSet.Author)


Тоже нельзя. Таблицы связаны и нельзя перезагружать говорит.
...
Рейтинг: 0 / 0
25.04.2018, 11:53
    #39635938
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять про DataGridView - Visual Basic .NET
У тебя типизированный DataSet?
...
Рейтинг: 0 / 0
25.04.2018, 11:56
    #39635944
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять про DataGridView - Visual Basic .NET
Типизированный DataSet делает вот так:
Код: c#
1.
2.
3.
4.
5.
this._adapter.InsertCommand.CommandText = @"INSERT INTO [MainTest] ([TestDate], [HelicopterID],
[IndentificationSign], [HelicopterNumber], [DeviceNumber], [DeviceID], [Executor], [Note]) VALUES (@TestDate,
@HelicopterID, @IndentificationSign, @HelicopterNumber, @DeviceNumber, @DeviceID, @Executor, @Note);
SELECT MainTestID, TestDate, HelicopterID, IndentificationSign, HelicopterNumber, DeviceNumber, DeviceID,
Executor, Note FROM MainTest WHERE (MainTestID = SCOPE_IDENTITY())";


Обрати внимание на SELECT следующий за INSERT
...
Рейтинг: 0 / 0
25.04.2018, 13:17
    #39635997
Wurgengel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять про DataGridView - Visual Basic .NET
fortibransa, вроде да. Вот он:
Код: vbnet
1.
2.
3.
Me._adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Author] ([Surname], [Authorname], [Patronymic]) VALUES (@Surna" & _
                "me, @Authorname, @Patronymic);" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "SELECT Id, Surname, Authorname, Patronymic FROM " & _
                "Author WHERE (Id = SCOPE_IDENTITY())"
...
Рейтинг: 0 / 0
25.04.2018, 14:02
    #39636032
fortibransa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять про DataGridView - Visual Basic .NET
А зачем тебе эти GetChanges?

Просто AuthorTableAdapter.Update(СправочникppДанныеDataSet), он сам там все сделает.
...
Рейтинг: 0 / 0
25.04.2018, 14:34
    #39636052
Wurgengel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять про DataGridView - Visual Basic .NET
fortibransa,

Так в мануале мелкомягких написано было. Попробую сейчас по вашему.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Опять про DataGridView - Visual Basic .NET / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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