我的数据表中有一个行列表
现在,我希望不是根据DESC
或ASC
来确定行的优先级,而是基于我的变量与行值的几个相似之处。
例如,
我有以下列的数据表:
Name, Location, Age, Sex, Education..
我已经有一些偏好,首先看到那些符合我的教育和位置的行,而那些不匹配的行可以在第一行之后。
我如何做到这一点?
我尝试使用SELECT statement
和OR
在LIKE 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'");
这里我不想严格要求我只想要这些值,而是首先想要这些值的偏好设置,休息可以在它后面......
答案 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'"