将值传递给文本框中的SQL查询参数

时间:2011-09-09 09:31:18

标签: asp.net sql vb.net

我正在使用以下代码连接到我的数据库。

Dim conStr As String = "Data Source=.\SQLEXPRESS;    ![enter image description here][1]
       AttachDbFilename=|DataDirectory|\dbTest.mdf;
       Integrated Security=True;
       User Instance=True"

Dim sqlQry As String = "SELECT * FROM [tblTest] WHERE ([Name] = @Name)"
Dim dAdt As New SqlDataAdapter(sqlQry, conStr)
Dim dSet As New DataSet()

然后用

填充适配器
dAdt.Fill(dSet, "tblTest")

然后我可以按照我想要的方式使用数据。

我的问题是: 如何通过我的webform上的文本框传递用户将提供的参数值。

Dim sqlQry As String = "SELECT * FROM [tblTest] <b>WHERE ([Name] = @Name)

我的意思是如何将参数值传递给我的查询? 请修改我的代码告诉我该怎么做。 非常感谢。 enter image description here

2 个答案:

答案 0 :(得分:2)

您需要添加参数对象并将代码放在Button的Click处理程序或您要使用的任何其他事件中。 (阅读@cjk帖子)。

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click

        Dim conStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\dbTest.mdf;Integrated Security=True;User Instance=True"
        Dim sqlQry As String = "SELECT * FROM [tblTest] WHERE ([Name] = @Name)"
        Dim Cn As New SqlConnection(conStr)
        Dim SelectCmd As New SqlCommand(sqlQry, Cn)
        SelectCmd.Parameters.AddWithValue("@Name", txtName.Text)
        'Or
        'SelectCmd.Parameters.Add("@Name",System.Data.SqlDbType.VarChar).Value=value_here
        Dim dAdt As New SqlDataAdapter(SelectCmd)

        Dim dSet As New DataSet
        dAdt.Fill(dSet, "tblTest")
        ......
End Sub

答案 1 :(得分:1)

你需要把非声明性的(即做东西的代码)放到方法中。

示例顶部的行,在类声明下只是变量的声明,并且在类被实例化时设置。

要实际做某事,需要有一个被调用的方法。