情况1
DataSet oDsParent = new DataSet();
DataTable odt = new DataTable();
odt.Columns.Add(new DataColumn("DOC_GENO_KEY", typeof(int)));
odt.Columns.Add(new DataColumn("RESOURCE_TYPE", typeof(string)));
odt.Columns.Add(new DataColumn("ROUTING_SUB_ID", typeof(int)));
odt.Rows.Add(2, "TEST1", 2);
odt.Rows.Add(4, "ADMIN", 2);
odt.Rows.Add(7, "TEST2", 2);
oDsParent.Tables.Add(odt);
oDsParent.AcceptChanges();
string sTemp =new string ();
sTemp = "(DOC_GENO_KEY = 4 OR DOC_GENO_KEY = 2) AND (RESOURCE_TYPE = 'TEST1' OR DOC_GENO_KEY = 2 OR ROUTING_SUB_ID = 2)";
案例2
oDsParent = new DataSet();
odt = new DataTable();
odt.Columns.Add(new DataColumn("DOCUMENT_ATTACHED", typeof(string)));
odt.Columns.Add(new DataColumn("ATTACHMENT TYPE", typeof(int)));
odt.Rows.Add("DOC1", 2);
odt.Rows.Add("DOC2", 1);
odt.Rows.Add("DOC3", 0);
oDsParent.Tables.Add(odt);
oDsParent.AcceptChanges();
sTemp = "(DOCUMENT_ATTACHED = 2 OR DOCUMENT_ATTACHED = 1 )";
数据集 oDsParent 是动态形成的,在案例 1 中有 3 列及其各自的数据,在案例 2 中,有 2 列包含数据。这些列是根据同一数据集(oDsParent)中的条件动态填充的,因此每次形成的列都不同。我需要根据下面的字符串(sTemp)查询数据集,该数据集也会根据条件根据数据表进行更改。我不能在查询中使用 Field("Column name") 因为没有固定的列并且它们动态变化。我需要一个通常可用于过滤数据集的 LINQ,无论根据它们各自的字符串创建哪些列。我创建了一个数据集和字符串的演示,以更好地理解我的问题。