我如何使用一个具有单引号(';)作为参数的字符串?我想在C#中使用一个选择查询,如下所示
本文关键字:一个 查询 选择 单引号 何使用 字符串 参数 | 更新日期: 2023-09-27 18:16:49
String ContractListst="'one','wo','三个','fur'";
字符串查询="从tbl_Contract中选择V_name,I_ID,其中V_name在(@ContractList(中";
cmd.AddWithValue("@ContractList",ContractListst(;
我希望三个被视为一个字符串,忽略单引号
注意:ContractList正在从另一个函数中获取
两件事。。。
首先,当您在C#中没有引用问题时,因为您发现在生成的SQL中存在引用问题。所以你必须回避这句话。在SQL中,这是通过在一行中有两个单引号来完成的:
String ContractListst = "'one','two','Three''s','four'";
其次,虽然我对您使用查询参数表示赞赏(很多人根本不使用它们(,但在这种情况下,这是行不通的。它们可以很好地处理单个值,但IN
子句是一个完整的子句,而不仅仅是一个值。所以在这种情况下,你必须手动构建它:
String query = "select V_name,I_ID from tbl_Contract where V_name in (" + ContractListst + ")";
(或者使用string.Format()
,或者使用StringBuilder
,有多种方法可以实现,为了简洁起见,我只使用了最直接的一种(
当然,如果您对IN
子句的用户输入执行此操作,请非常小心。(我很确定已经存在Stack Overflow问题,这些问题讨论了如何正确处理不能参数化的子句中的用户输入。(