2
我有一個數據庫,我的程序將查詢。動態表名
它都具有相同的結構,3個表:表1 ,表2表3
如何我寫一個LINQ查詢,將查詢這些表的,用我的動態指定表名?
除此之外。如果將其他表添加到數據庫中,此解決方案必須工作。所以,即使當我寫代碼表4不存在它可能會被添加。
我有一個數據庫,我的程序將查詢。動態表名
它都具有相同的結構,3個表:表1 ,表2表3
如何我寫一個LINQ查詢,將查詢這些表的,用我的動態指定表名?
除此之外。如果將其他表添加到數據庫中,此解決方案必須工作。所以,即使當我寫代碼表4不存在它可能會被添加。
試試這個:
DataSet s = new DataSet();
DataTable t1 = new DataTable();
t1.Columns.Add ("A", typeof (int));
t1.Columns.Add ("B", typeof (string));
s.Tables.Add (t1);
t1.Rows.Add (1, "T1");
t1.Rows.Add (2, "T1");
DataTable t2 = new DataTable();
t2.Columns.Add ("A", typeof (int));
t2.Columns.Add ("B", typeof (string));
s.Tables.Add (t2);
t2.Rows.Add (1, "T2");
t2.Rows.Add (2, "T2");
t2.Rows.Add (3, "T2");
var result = from t in s.Tables.OfType<DataTable>()
from r in t.Rows.OfType<DataRow>()
select r;
是否可以創建表名稱的數組,然後從該拉(即使用表名的陣列上一個foreach,然後運行與元素查詢的數組作爲名稱)? – soandos 2011-05-11 18:40:35
[一些黑客在這裏被討論](http://social.msdn.microsoft.com/Forums/en/linqprojectgeneral/thread/6273d072-f500-4382-afb4-8eafd185794d)。因人而異。祝你好運。 – 2011-05-11 19:10:47
如果表格全部具有相同的結構,爲什麼不只有一個表格,並且有一個額外的列表示記錄的「類型」(以前由該記錄屬於哪個表格指示)?然後,您將能夠在LINQ查詢的where子句中指定記錄「type」。 – 2011-05-16 06:25:41