我遇到了一个非常愚蠢的问题。我有一个搜索框,用户可以在其中输入数字和字符串。一些Where子句是整数,而其他子句是字符串。我的查询类似于:
string keyword = "";
string query = "Select * from Table
where POrderNumber = {0}
AND
Fname LIKE '% {0}%'";
query = string.Format(query,keyword);
我收到数据转换错误
答案 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 + "%'";
如果你愿意,你可以将它简化一点,但这是它的基本要点。