asp mvc3:在单个查询中搜索字符串和整数

时间:2014-10-28 17:12:41

标签: asp.net-mvc-3

我遇到了一个非常愚蠢的问题。我有一个搜索框,用户可以在其中输入数字和字符串。一些Where子句是整数,而其他子句是字符串。我的查询类似于:

string keyword = "";
string query = "Select * from Table
where POrderNumber = {0}
AND
Fname LIKE '% {0}%'";
query = string.Format(query,keyword);

我收到数据转换错误

1 个答案:

答案 0 :(得分:1)

我的建议是有条不紊地构建查询。

int POrderNumber;
string keyword = "";
string query = "Select * from Table Where ";
if (Int32.TryParse(keyword, out POrderNumber))
  query += "POrderNumber = " + POrderNumber;
if (!string.IsNullOrEmpty(keyword))
  query += " AND Fname LIKE '%" + keyword + "%'";

如果你愿意,你可以将它简化一点,但这是它的基本要点。