我使用datagridview并使用数据集填充它,如下所示:
Private GetGeschaftDataSet As New DataSet
Public Function GetDataSet() As DataSet Implements IDAL.GetDataSet
Dim strcon = New AppSettingsReader().GetValue("ConnectionString", GetType(System.String)).ToString()
Using con As New SqlConnection(strcon)
Using cmd As New SqlCommand("SELECT * FROM T_Marke", con)
con.Open()
' Create a data adapter in the method and throw it away afterwards
Using GetProjectsDataAdapter = New SqlDataAdapter(cmd)
GetProjectsDataAdapter.Fill(GetGeschaftDataSet, "trial1")
End Using
End Using
End Using
Return GetGeschaftDataSet
End Function
当用户结束工作时,我将更改保存到db,如下所示:
Public Sub MakeChangesDataSet() Implements IDAL.MakeChangesDataSet
If Not GetGeschaftDataSet.HasChanges Then
MessageBox.Show("No changes to save", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
Dim i As Integer
Try
Using MyConnection = New SqlConnection(strcon)
Using cmd As New SqlCommand("SELECT * FROM T_Marke", MyConnection)
MyConnection.Open()
' Create a data adapter in the method and throw it away afterwards
Using GetProjectsDataAdapter = New SqlDataAdapter(cmd)
Dim cmdbuilder As New SqlCommandBuilder(GetProjectsDataAdapter)
i = GetProjectsDataAdapter.Update(GetGeschaftDataSet, "trial1")
End Using
End Using
End Using
MessageBox.Show("Updated" & i & " marke", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
但是我想检查是否不重复数据,在这种情况下,如果我的表包含列:Id和Name - 如果用户已经存在已存在的Name,我不想更新。如何实现,或者我应该检查数据网格级别?
答案 0 :(得分:0)
有一些方法可以做到这一点。
打开一个连接并选择计算具有该名称的所有行,如果在同一连接中为零则执行插入。
使用将完成上述所有操作的存储过程。
在名称列
我会使用第三种。