Web表单——sql和检索数据——是一个更简单的解决方案



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

使用Excel和VBA,它可以用几行来完成。遗憾的是,我不能使用Excel,但由于电脑速度慢和Office的价格,我不得不选择Web界面。为什么这个简单的任务在ASP中如此复杂?. NET中所有通用声明、sqlserver和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

Where Baza是表名,

SIFRE是将在文本框

中输入的代码名。

和NAZIV是与SIFRE对应的描述,应在标签

中显示。

正确的格式是

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。

相关内容

最新更新