检查ms表中是否存在电话号码

时间:2015-05-13 11:03:50

标签: .net vb.net

我怎么知道ms数据库中是否存在电话号码?

我正在使用此代码,但我有错误,我想我需要将所有电话号码作为数组并在数组中搜索,如果数字存在与否。

Dim number As String
    con.Open()
    Dim sql As String = "select cphone from cust "
    Dim cmd As New OleDbCommand(sql, con)
    Dim dr As OleDbDataReader
    dr = cmd.ExecuteReader
    While dr.Read
        number = dr(5)
    End While
    con.Close()

    If TextBox5.Text = number Then
        MsgBox("exist")
    Else
        MsgBox("NOT-exist")
    End If

但我认为有这么简单的方法,请帮助

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个:

Dim ReturnValue as object
Dim sql As String = "select 1 from cust where cphone = @cphone"
using (Con as OleDbConnection = New OleDbConnection(ConnectionString)) 
    using (cmd As OleDbCommand = New OleDbCommand(sql, Con))
        cmd.Parameters.Add(@cphone).Value = TextBox5.Text
        Con.Open()
        ReturnValue = cmd.ExecureScalar()
        Con.Close()
        If ReturnValue Is Nothing Then
            MsgBox("exist")
        Else
            MsgBox("NOT-exist")
        End If
    end using
end using

说明:

  • Using块提供了一种方便的语法,可确保正确使用IDisposable对象。
  • Parametized queries确保sql injection安全
  • 使用ExecuteScalar返回从查询返回的第一个值。在这种情况下,如果TextBox5中的文字与数据库中的任何cphone都不匹配,Nothing将返回,这就是我使用ReturnValue对象<的原因/ LI>

注意:直接写在这里的代码,我可能会犯一些语法错误,但这是你应该把代码带到的一般方向。

答案 1 :(得分:0)

您可以在查询

中进行检查
Dim sql As String = "select cphone from cust where cphone = " + TextBox5.Text

您可以返回BITTOP 1而不是该号码 您可以使用ExecuteScalar来提高性能。