以下是一些简单的示例代码,演示了如何从SQL Server获取结果:
{{1}}
在.Net中,表A将出来表和表B将出来表1 ...我希望它们保存真正的表名。
如何从SQL查询中获取表的真实表名?所有的列名都是正确的,但是这些表出来了TABLE,TABLE1,TABLE2 ......我显然知道如何在我的代码中设置它们或解析表名并在代码中设置它们......我想知道为什么.Net会丢失首先是表名,如果有办法让他们不变成模棱两可的名字。
为什么SQLClient驱动程序的编写者不认为我们关心表名?
任何人都可以在不用手动设置表名的情况下解决这个问题吗?
答案 0 :(得分:0)
以下是两种方法 - 将表格映射到DataTables
并一次加载DataSet
一个表格所需的名称。
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
Dim Connection As New SqlConnection(OISConnectString)
Connection.Open()
Dim da As New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM FIS..FIS_Log; SELECT * FROM FIS..FIS_Log_CA", Connection)
Dim ds As New DataSet
da.Fill(ds)
Debug.Print(ds.Tables(0).TableName) ' Table
Debug.Print(ds.Tables(1).TableName) ' Table1
Dim dtLog As DataTable = ds.Tables(0)
Dim dtLog_CA As DataTable = ds.Tables(1)
' work with DataTables by name
Stop
'reset
ds = Nothing
da = Nothing
ds = New DataSet()
da = New SqlDataAdapter("SELECT * FROM FIS..FIS_Log", Connection)
da.Fill(ds, "FIS_Log")
da = New SqlDataAdapter("SELECT * FROM FIS..FIS_Log_CA", Connection)
da.Fill(ds, "FIS_Log_CA")
Debug.Print(ds.Tables(0).TableName) ' Table
Debug.Print(ds.Tables(1).TableName) ' Table1
dtLog = ds.Tables("FIS_Log")
dtLog_CA = ds.Tables("FIS_Log")
Connection.Close()
End Sub
根据您的平台,您可能会发现TableAdapterManager很有用