仅将列表框中的新项目添加到 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 并且只会保存新记录。