2013-06-12 31 views
0

我有一個未定數量的DataTables。我從我的DataBase得到它們,每個DataTable代表我的DataBase中的一個表格,我不使用DataBase的所有表格(這些在代碼中較早選擇),而不是所有列(與表格相同)。如何在一系列堆疊的數據網格中顯示來自多個DataTable的數據?

現在我的問題:我想在DataGrid之間顯示一個在另一個之下,並在它們之間爲表名打斷。

這是我如何得到我的數據表:

List<DBTable> selectedTbl = DBObject.SingDBObj.GetSelectedTables(); 

foreach (DBTable tbl in selectedTbl) 
{ 
    string cols = tbl.GetSelectedColumnNames(); 

    string query = @"SELECT " + cols + " FROM [" + DBObject.SingDBObj.DataSource + "].[" + DBObject.SingDBObj.Database + "].[" + tbl.Schema + "].[" + tbl.Name + "];"; 
    DataTable DTShow = DBObject.SingDBObj.ExecuteQuery(query); 
} 

dataGridShowColmns.DataContext = ??; 

是否有一個簡單的方法來做到這一點?

+0

你當然知道什麼表的名稱是? –

+0

我有不同的DataTables,我知道這些名字,但我不知道如何將它們放在一起,就像我描述的那樣。 –

+0

與此答案類似? http://stackoverflow.com/a/14358983/1073107 – dash

回答

0

在SQL中,不能爲數據集分配名稱,只能用c#/ VB來完成。像

Dataset.Table[0].Name = "MyTable"; 
1

你也許意思是這樣:

DataSet ds = new DataSet(); 

// dataset is here just initialized for demonstration, you would first 
// get the tables from database and populate dataset 

for (int i = 0; i < ds.Tables.Count; i++) 
{ 
    DataTable dt = ds.Tables[i]; 

    foreach (DataRow dr in dt.Rows) 
    { 
     dataGridView1.Rows.Add(dr); 
    } 
} 
相關問題