我正在Access数据库的一个表中搜索一行。该行的字段必须是用户输入的特定值。
使用
OleDbCommand myQuery = new OleDbCommand("Select * from [Job Control] where [Job No] like '%" + job_search_value + "%';", myConn);
我得到了数据,但是所有包含job_search_value
值的东西。
我需要的是表行中的字段正好是job_search_value
。 [Job No]
字段为Int
,并已尝试
OleDbCommand myQuery = new OleDbCommand("Select * from [Job Control] where [Job No]=" + job_search_value + ";", myConn);
和
OleDbCommand myQuery = new OleDbCommand("Select * from [Job Control] where [Job No]=" + Convert.ToInt32(job_search_value) + ";", myConn);
使用这2条命令,我不会收到任何类似Data mismatch
的错误,但是也不会收到任何数据。
答案 0 :(得分:0)
您应该并且必须使用sql参数来解决问题以及避免SQL注入。试试:
OleDbCommand myQuery = new OleDbCommand("Select * from [Job Control] where [Job No]=@param", myConn);
myQuery.Parameters.Add("@param"SQlDbType.Int).Value = int.Parse(job_search_value);