Database 如果项etc不存在,如何在绑定源筛选器上设置错误消息

Database 如果项etc不存在,如何在绑定源筛选器上设置错误消息,database,vb.net,Database,Vb.net,我有一个过滤器,所以它会根据customerID过滤绑定源。但是如果客户id不存在怎么办?当我输入id=3并且不存在时,它会破坏我的整个绑定,这意味着它会取消所有内容,当我想重新打开绑定时,它会崩溃,说它找不到该项。因此,尽量不要详细讨论错误,我想这样做,如果结果返回null,那么向用户显示一个错误,称为not located等,然后再次输入,如果正确/存在,则执行其筛选工作 我的代码: dim filterstring as string filterstring = CStr(bso

我有一个过滤器,所以它会根据customerID过滤绑定源。但是如果客户id不存在怎么办?当我输入id=3并且不存在时,它会破坏我的整个绑定,这意味着它会取消所有内容,当我想重新打开绑定时,它会崩溃,说它找不到该项。因此,尽量不要详细讨论错误,我想这样做,如果结果返回null,那么向用户显示一个错误,称为not located等,然后再次输入,如果正确/存在,则执行其筛选工作

我的代码:

dim filterstring as string
    filterstring = CStr(bsorder.Filter = "id = " & custid & "")
                If filterstring.Count() = 0 Then
                    MessageBox.Show("Error! try again!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Else

                        bsorder.Filter = "ID = " & custid & ""

                End If

在应用过滤器之前,我需要检查行是否存在,为此,我使用Try/Catch方法成功地知道id是否存在。有效的代码如下所示:

Try
                Using myConnection As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\yous.accdb")
                    myConnection.Open()
                    Dim str As String
                    str = "SELECT * FROM table WHERE whateverID=@ID "
                    Using cmd As OleDbCommand = New OleDbCommand(str, myConnection)
                        cmd.Parameters.AddWithValue("@ID", custid)
                        Using dr As OleDbDataReader = cmd.ExecuteReader
                            If dr.HasRows Then
                                dr.Read()

                        End Using
                    End Using
                End Using
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try

想进一步解释吗请举例说明?事实上,我只是在这里读了一篇关于整个选项strict和option explicit的简短文章,但第一次在整个过程中出现交叉:z我正在修复我的代码并对其进行测试,以使其达到完美,直到我遇到了一个小错误,如果它不存在,它不会给出错误等等:是不是类似于option strict在…上我把它放在我的代码中,然后在代码结束之前关闭Option strict?打开Option strict是件好事吗?话虽如此,它会打乱我的其他代码吗?:oIt透露了30个哈哈xD感谢你的惊喜导师;)它给我这些自动修复,所以我测试自动修复,以确保它们是正确的-我的程序与他们一起工作。话虽如此,既然它被激活了(我是将strfilter变暗为string呢,还是?),那么我该如何计算它以查看它在过滤器中是否为null呢?老实说,我尝试使用:if bs.filter is nothing then statement和其他几个语句,但结果相同。。至于你在说什么,我不明白你的意思:/这是我的更新代码: