【发布时间】:2014-04-04 01:44:05
【问题描述】:
我有一个为一个数据集返回多个表的存储过程
Select * from [Users];
Select * from [Supplier];
....
使用 .net 我可以将其放入 Dataset,但我没有得到任何表名:
Dim ds As DataSet = SQL.Get_dataSet("EXEC [Stored_Procedure_Name]")
Dim i As Integer = 0
Do Until i = ds.Tables.Count
msgbox(ds.Tables(d).TableName)
d = d + 1
Loop
这将返回通用名称:Table1,table2,table3 而不是 [Users],[Supplier],[...]
我的Get_DataSet函数如下:
Shared Function SQLdataSet(query As String) As DataSet
Dim TempTable As New DataSet
Dim Tempdata As SqlDataAdapter
Using SQLConnection As SqlConnection = New SqlConnection(Connection_String_Current)
SQLConnection.Open()
Tempdata = New SqlDataAdapter(query, SQLConnection)
Tempdata.Fill(TempTable)
End Using
Return TempTable
End Function
【问题讨论】:
-
以及Get_dataSet()方法是做什么的???
-
看来您正在使用自定义数据层 bc Get_dataSet 不是 SqlClient 或我所知道的任何标准 .NET 数据库库的方法。话虽如此,当您有一个返回多个结果集的 proc 时,这是默认的数据适配器行为。如果您使用的是 SqlClient 库,您可以指定“主”表名,然后它会在返回其他结果集时自动增加表 #。
-
它是我编写的自定义函数,用于从 SQLdataAdapter 填充数据集
-
我现在添加我的功能
标签: c# sql sql-server vb.net