У меня есть Datagridview, который заполняется некоторыми данными из SQL Server.Это отлично работает без проблем на всех.
Каждый раз, когда я вставляю или обновляю записи в таблице, я хочу СБРОСИТЬ IDENTITY
столбец с именем CarID
таблицы, но последовательность IDS выглядит нехорошо, поскольку иногда записи удаляются.
В моем коде я использую 'SQLCOMMANDBUILDER' для выполнения операций вставки, обновления или удаления.
Я попробовал следующий код ниже, но выдает ошибку исключения, которая говорит: «Не удается найти таблицу 0."
Где мне починить ??
//THESE ARE CODE TO RESEED AN IDENTITY COLUMN
Sub ResetIDColumn()
Try
Dim querystring As String = "declare @max int " &
"Select @max=max([CarID]) FROM [dbo].[Cars]" &
"if @max IS NULL SET @max = 0 " &
"DBCC CHECKIDENT ('[Cars]', RESEED,@max)"
ds = New DataSet
da = New SqlDataAdapter(querystring, con)
cmdbuilder = New SqlCommandBuilder(da)
da.Fill(ds)
DgvCarList.DataSource = ds.Tables(0)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
//CODE TO PUPOLATE DATAGRIDVIEW
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs)
Handles MyBase.Load
Try
Dim querystring As String = "SELECT * FROM [dbo].[Cars]"
ds = New DataSet
da = New SqlDataAdapter(querystring, con)
cmdbuilder = New SqlCommandBuilder(da)
da.Fill(ds)
DgvCarList.DataSource = ds.Tables(0)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
//CODE TO INSERT OR UPDATE DATA
Private Sub btnUpdate_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdate.Click
ResetIDColumn()
Try
da.Update(ds.Tables(0))
MessageBox.Show("Update was successful!", "Data")
Loaddata()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
//CODE TO LOAD DATA
Sub Loaddata()
Dim querystring As String = "SELECT * FROM [dbo].[Cars]"
ds = New DataSet
da = New SqlDataAdapter(querystring, con)
cmdbuilder = New SqlCommandBuilder(da)
da.Fill(ds)
DgvCarList.DataSource = ds.Tables(0)
DgvCarList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
End Sub