这个SELECt查询有什么问题?

时间:2011-01-12 12:48:17

标签: asp.net vb.net

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SQLData As New System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True")
        Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT COUNT(*) FROM Table1 WHERE Name =" + TextBox1.Text + " And Last = '" + TextBox2.Text + "'", SQLData)
        SQLData.Open()
        If cmdSelect.ExecuteScalar > 0 Then
            Label1.Text = "Record Found ! " & TextBox1.Text & " " & TextBox2.Text
            Return
        End If

        Label1.Text = "Record Not Found ! "
        SQLData.Close()
    End Sub

我写这段代码来查找在textbox1和textbox2中输入的记录是否存在..如果记录存在..那么在label1中文本将是RECORD FOUND否则NO RECORD FOUND

错误:

* *当我输入textbox1和textbox2然后点击按钮点击事件时,它会显示错误: 列名无效, **

4 个答案:

答案 0 :(得分:4)

请使用SqlCommand.Parameters收藏。请!!为了更好的编程。

Dim cmdSelect As New System.Data.SqlClient.SqlCommand(
    "SELECT COUNT(*) FROM Table1 WHERE Name = @Name And Last = @Last", SQLData)

cmdSelect.Parameters.AddWithValue("@Name",TextBox1.Text)
cmdSelect.Parameters.AddWithValue("@Last",TextBox2.Text)

答案 1 :(得分:0)

TextBox1.Text应在单引号(')内传递。

除此之外,它似乎是另一个Little Bobby Tables案例。

答案 2 :(得分:0)

您需要在Textbox1.text值

周围添加'

e.g

'" + TextBox1.Text + "'

答案 3 :(得分:0)

你应该不这样做,因为这是为sql注入打开的。除此之外,我认为您在'周围的查询中遗漏了一些TextBox1.Text