關於一次性往DataSet填充多個表的問題
Dim Sql As String
Sql = "select * from PPTM_Received select * from PPTM_Building select * from PPTM_Contract "
myDataAdapter.SelectCommand.CommandText = Sql
myDataAdapter.Fill(MyDataSet)
用此法是可以實現的,不過只能使用Index來取得對應表的資料,如:
dgvReceived.DataSource = MyDataSet.Tables(0)
dgvBuilding.DataSource = MyDataSet.Tables(1)
dgvContract.DataSource = MyDataSet.Tables(2)
現在要實現的是:
能否在填充的時候就給這幾個表指定名稱呢?就像填充單個表一樣可以指定表名,如:myDataAdapter.Fill(MyDataSet, "tab_Contract ")
[解决办法]
Dim Sql As String
Sql = "select * from PPTM_Received;select * from PPTM_Building;select * from PPTM_Contract "
myDataAdapter.SelectCommand.CommandText = Sql
da.TableMappings.Add( "PPTM_Received1 ", "PPTM_Building ");
da.TableMappings.Add( "PPTM_Received2 ", "PPTM_Contract ");
myDataAdapter.Fill(MyDataSet, "PPTM_Received ")
Response.Write(ds.Tables[0].TableName)
Response.Write(ds.Tables[1].TableName)
Response.Write(ds.Tables[2].TableName)
[解决办法]
amandag(高歌)方法是正确的
============
myDataAdapter.TableMappings.Add( "PPTM_Received1 ", "PPTM_Received ");
myDataAdapter.TableMappings.Add( "PPTM_Received2 ", "PPTM_Building ");
myDataAdapter.TableMappings.Add( "PPTM_Received3 ", "PPTM_Contract ");
myDataAdapter.Fill(MyDataSet)
Response.Write(ds.Tables[0].TableName)
Response.Write(ds.Tables[1].TableName)
Response.Write(ds.Tables[2].TableName)