DataTable选择方法

时间:2012-04-04 10:02:05

标签: asp.net sql-server

我的数据表中有一个行列表 现在,我希望不是根据DESCASC来确定行的优先级,而是基于我的变量与行值的几个相似之处。

例如,
我有以下列的数据表:

Name, Location, Age, Sex, Education..

我已经有一些偏好,首先看到那些符合我的教育和位置的行,而那些不匹配的行可以在第一行之后。

我如何做到这一点?
我尝试使用SELECT statementORLIKE clause中设置表达式,但我似乎没有得到正确答案。

DataRow[]  row = ds.Tables[0].Select("Affiliations LIKE '%" + ftr2 + "%'OR Loc_city LIKE '%" + city1 + "%'OR Edu_Hist LIKE '%" + ftr + "%'OR Work_Hist LIKE '%" + ftr1 + "%' OR Priority='true'");

这里我不想严格要求我只想要这些值,而是首先想要这些值的偏好设置,休息可以在它后面......

2 个答案:

答案 0 :(得分:0)

您可以上传一些您已尝试过的代码示例吗?

试试这个

DataTable table = DataSet1.Tables["Orders"];
// Presuming the DataTable has a column named Date.
string expression;
expression = "Date > #1/1/00#";
DataRow[] foundRows;

// Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression);

http://msdn.microsoft.com/en-us/library/zk13kdh0%28v=vs.71%29.aspx

答案 1 :(得分:0)

您可以使用Union select语句,首先选择匹配的行而不是匹配的行 像这样:

   string selectQuery="select Affiliations LIKE '%" + ftr2 +
                       "%'OR Loc_city LIKE '%" + city1 + 
                       "%'OR Edu_Hist LIKE '%" + ftr + 
                       "%'OR Work_Hist LIKE '%" + ftr1 + 
                       "%' OR Priority='true' 
                           union select Affiliations not LIKE '%" + ftr2 + 
                       "%'and Loc_city not LIKE '%" + city1 + 
                       "%'and Edu_Hist not LIKE '%" + ftr + 
                       "%'and Work_Hist not LIKE '%" + ftr1 + 
                       "%' and Priority !='true'"