仅将列表框中的新项目添加到 SQL
Add only new items from listbox to SQL
我有一个列表框,用户可以随时将国家/地区名称添加到其中。
现在我只需要添加新数据来检查数据是否是新数据,然后将其插入 sql。
我的代码不起作用:
For Each i As String In listbox1.Items
Dim sql = "select * From Countries where CountryName=N'" & i & "'"
Dim adp As New SqlClient.SqlDataAdapter(sql, SQlconn)
Dim ds As New DataSet
adp.Fill(ds)
Dim dt = ds.Tables(0)
If dt.Rows.Count = 0 Then
Dim dr = dt.NewRow
dr!CountryName = i
dt.Rows.Add(dr)
Dim cmd As New SqlClient.SqlCommandBuilder(adp)
adp.Update(dt)
End If
Next
如果您首先从数据库中加载现有名称,则无需检查任何内容。只需查询数据库以填充 DataTable
并将其绑定到 ListBox
。当用户添加新国家时,将其添加到 DataTable
中,它将自动显示在 ListBox
中。当需要保存时,只需使用相同的数据适配器来保存 DataTable
并且只会保存新记录。
我有一个列表框,用户可以随时将国家/地区名称添加到其中。 现在我只需要添加新数据来检查数据是否是新数据,然后将其插入 sql。 我的代码不起作用:
For Each i As String In listbox1.Items
Dim sql = "select * From Countries where CountryName=N'" & i & "'"
Dim adp As New SqlClient.SqlDataAdapter(sql, SQlconn)
Dim ds As New DataSet
adp.Fill(ds)
Dim dt = ds.Tables(0)
If dt.Rows.Count = 0 Then
Dim dr = dt.NewRow
dr!CountryName = i
dt.Rows.Add(dr)
Dim cmd As New SqlClient.SqlCommandBuilder(adp)
adp.Update(dt)
End If
Next
如果您首先从数据库中加载现有名称,则无需检查任何内容。只需查询数据库以填充 DataTable
并将其绑定到 ListBox
。当用户添加新国家时,将其添加到 DataTable
中,它将自动显示在 ListBox
中。当需要保存时,只需使用相同的数据适配器来保存 DataTable
并且只会保存新记录。