【发布时间】:2012-08-20 13:33:16
【问题描述】:
我有一个返回多个记录集的存储过程。它可以是 1 个记录集、2 个记录集或更多。不知道有多少RS会回来。
在stackoverflow我找到了下面的示例
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("myConnection").ConnectionString)
Dim cmd As New SqlCommand
Dim Reader As SqlDataReader
cmd.Connection = conn
cmd.Parameters.AddWithValue("@ACTNbr", tbACTNbr.Text.ToString.Trim)
cmd.Parameters.AddWithValue("@WTHNbr", tbWTHNbr.Text.ToString.Trim)
cmd.CommandText = "sp_search_def"
cmd.CommandType = CommandType.StoredProcedure
conn.Open()
Reader = cmd.ExecuteReader()
'The next part is what I found here at stackoverflow
While Reader.Read() OrElse (Reader.NextResult() And Reader.Read())
For i As Integer = 0 To Reader.FieldCount - 1
Response.Write(Reader(i).ToString())
Response.Write(" ")
Next
Response.Write("<br />")
End While
上面的response.write 完美地显示了我需要的数据。但我需要将其放入 Gridview 中。即,我需要将存储过程的结果(及其所有结果集)放入一个 gridview 中。
我的网格视图设置为AutoGenerateColumns = "true"。
我试过了:
myGridview.DataSource = Reader
myGridview.DataBind()
当然,我只得到其中一个记录集。
存储过程的结果都具有相同的格式 - 相同数量的列、标题等。
有人能指出我正确的方向吗?我一直在努力解决这个问题,但放弃了,现在我在这里问。
我是新手。
谢谢。
【问题讨论】:
-
请将答案标记为正确。
标签: asp.net sql-server vb.net tsql stored-procedures