SQL选择返回值为变量

时间:2009-09-14 13:15:20

标签: asp.net sql vb.net

使用:使用VB.net连接到MS SQL Server的ASP.net

我要做的是获取SQL select查询的结果并将其放在字符串变量中,以便它可以用在文本框或标签之类的东西中。到目前为止的代码不起作用......

Imports System.Data.SqlClient

部分类dev_Default     继承System.Web.UI.Page

Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load


    Dim cnPodaci As New SqlConnection
    cnPodaci.ConnectionString = "Data Source=<server>;Initial Catalog=<DB>;User ID=<UserName>;Password=<Password>"
    cnPodaci.Open()
    Dim cm As New SqlCommand
    cm.CommandText = "SELECT * FROM tbl1"
    cm.Connection = cnPodaci
    Dim dr As SqlDataReader
    dr = cm.ExecuteReader

    TextBox1.Text = dr.GetString(0)


    cnPodaci.Close()

End Sub

结束班

3 个答案:

答案 0 :(得分:4)

虽然您已通过在命令上调用“ExecuteReader”来执行查询,但实际返回的是一个对象(DataReader),它允许您迭代任何查询结果。要做到这一点,你必须在DataReader上调用“Read”方法(这可以在“while”循环的子句中多次调用)。将代码修改为类似的代码应该有效:

If dr.Read() Then
    TextBox1.Text = dr.GetString(0)
End If

但是,请记住,只有在查询返回的第一个字段是字符串时才会有效,否则可能会抛出强制转换异常。

答案 1 :(得分:2)

如果查询应该返回单个值,您只需使用ExecuteScalar方法:

 TextBox1.Text = DirectCast(cm.ExecuteScalar(), String)

答案 2 :(得分:-2)

问题是SELECT查询将返回一个数据集,或者至少从数据集返回一行,而不是字符串。

您是否绝对需要将整个结果集作为字符串?或者你可以通过引用数组或数据集中的点来实现你想要做的事情吗?