一点背景。这是我用VB编写的第一个asp.net项目,除了一点sql之外我对编程知之甚少。
所以我的问题。我正在构建一个站点,按钮点击它将基于OrderNumer进行搜索并提取订单信息并用数据填充几个txt框。我用我需要的数据创建了一个数据集。现在,如果我改变它看看我的SQL表我没有错误但没有数据被拉,但如果我尝试使用我的数据集我得到一个无效的对象错误。任何帮助是极大的赞赏。
这是我正在使用的代码:
Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cmd As New SqlCommand
Dim SqlQuery As String
Dim conn As New SqlConnection
cmd.Connection = conn
conn.ConnectionString = "Data Source=Myserver;database=XXXXX;uid=XXXXX;password=XXXXXXX;Initial Catalog=XXXXX;"
SqlQuery = ("SELECT ShipName + ShipName2 FROM ds Where OrderNumber =" & txtOrderNumber.Text & " ")
conn.Open()
cmd.CommandText = SqlQuery
Dim sdr As SqlDataReader = cmd.ExecuteReader()
If sdr.HasRows Then
While sdr.Read()
txtFullName.Text = sdr.Item("ShipName").ToString
End While
sdr.Close()
Else
MsgBox("OrderNumber #" & txtOrderNumber.Text & " " & "Not Found.")
End If
conn.Close()
End Sub
答案 0 :(得分:0)
您的SqlQuery分配看起来应该更像这样:
SqlQuery = ("SELECT ShipName + ShipName2 FROM ds Where OrderNumber ='" & txtOrderNumber.Text & "' ")
请注意,唯一的变化是用单引号括住txtOrderNumber.Text值。
顺便说一下,这种类型的代码容易受到SQL注入攻击。您应该使用SQL参数。