如果这个问题很愚蠢,我很抱歉,但我没有其他办法看到大局。我有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。