使用通配符创建参数化MySQL查询
本文关键字:MySQL 查询 参数 创建 通配符 | 更新日期: 2023-09-27 17:59:24
我想使用基于参数的查询填充数据网格。但是,我希望能够输入多个可能包含通配符的参数。但是,以下测试查询不正确。
你知道我哪里错了吗?
SELECT `Customer ID`, `Company Name`, `Address Line 3` FROM XTest.all WHERE `Company Name` LIKE '%'+@Company+'%' ORDER BY `Company Name`;
string company = "%" + your_criteria_on_company + "%";
string sql = "SELECT
`Customer ID`, `Company Name`, `Address Line 3`
FROM XTest.all
WHERE
`Company Name` LIKE @Company
ORDER BY `Company Name`";
SqlCommand sqlCommand = new SqlCommand( sql, dbConnection );
sqlCommand.Parameters.AddWithValue( "@Company", company );
' add more of your code here
' and then
sqlCommand.Prepare();
MySqlDataReader resultSet = sqlCommand.ExecuteReader();
参考:
- SqlParameter AddWithValue文档
- 在Mysql中使用C#中的Prepared语句
您需要将列名用""
双引号括起来(取决于SQL模式的设置)。
请查看此链接并按照@DRapp的回答进行操作。以下是链接:ASP.NET 中的mysql参数化查询
根据答案,您需要使用?
而不是@
。
试试这个:
SELECT `Customer ID`, `Company Name`, `Address Line 3`
FROM XTest.all
WHERE `Company Name` LIKE concat('%',? + "Company",'%')
ORDER BY `Company Name`;
objCommand.Parameters.AddWithValue("?Company", "CompanyValue");