Asp.net从数据集中提取数据

时间:2014-06-06 20:23:39

标签: asp.net vb.net

一点背景。这是我用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

1 个答案:

答案 0 :(得分:0)

您的SqlQuery分配看起来应该更像这样:

SqlQuery = ("SELECT ShipName + ShipName2 FROM ds Where OrderNumber ='" & txtOrderNumber.Text & "' ")

请注意,唯一的变化是用单引号括住txtOrderNumber.Text值。

顺便说一下,这种类型的代码容易受到SQL注入攻击。您应该使用SQL参数。