使用:使用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
结束班
答案 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查询将返回一个数据集,或者至少从数据集返回一行,而不是字符串。
您是否绝对需要将整个结果集作为字符串?或者你可以通过引用数组或数据集中的点来实现你想要做的事情吗?