Web表单 - sql和检索数据 - 是否有更简单的解决方案

时间:2014-03-12 20:17:09

标签: asp.net webforms

很抱歉,如果这个问题很愚蠢,但我没有办法看到大局。 我有1个文本框,1个标签和带有两列(代号和描述)的数据库,通过在文本框中输入代号我希望在标签中获得相应的描述。

使用Excel和VBA,可以使用几行来完成。可悲的是我不能使用Excel但必须选择Web界面因为PC速度慢和办公室价格。为什么这个简单的任务在ASP.NET中如此复杂,包括所有通用声明和sqlservers以及sqlconnections。

有更简单的方法吗?

顺便说一句。我试图调整我在网上找到的许多不同的东西,最后一个看起来很有希望,但它不起作用:

Protected Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    Using sqlconn As New SqlConnection("Data Source=.\sqlexpress;Initial Catalog=KLIJENTI;Integrated Security=True"), _
          sqlcmd As New SqlCommand("Select From Baza Where SIFRE = @SIFRE", sqlconn)

        sqlcmd.Parameters.Add("@SIFRE", SqlDbType.VarChar, 50).Value = TextBox2.Text

         sqlconn.Open()


        'Label1.Text = CString(sqlcmd.ExecuteScalar()) 'CString is not declared
        Label1.Text = sqlcmd.ExecuteScalar()


    End Using
End Sub

Baza是表名,

SIFRE是将在文本框中输入的代号

和NAZIV是对应于SIFRE的描述,应该显示在Label

1 个答案:

答案 0 :(得分:4)

正确的表格是

Protected Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    Using sqlconn = New SqlConnection("Data Source=.\sqlexpress;Initial Catalog=KLIJENTI;Integrated Security=True")
    Using sqlcmd = New SqlCommand("Select NAZIV From Baza Where SIFRE = @SIFRE", sqlconn)
        sqlcmd.Parameters.AddWithValue("@SIFRE", TextBox2.Text)
        sqlconn.Open()
        Dim result = sqlcmd.ExecuteScalar()
        if result IsNot Nothing Then
           Label1.Text = result.ToString
        End If
    End Using
    End Using
End Sub

SELECT sql子句后面是要检索的列的列表。 (添加了NAZIV)
此外,您应该考虑您的查询找不到参数@Sifre的值,在这种情况下,ExecuteScalar的结果是Nothing。