gpt4 book ai didi

c# - 我如何使用具有单引号 (') 作为参数的字符串 我想在 C# 中使用选择查询,如下所示

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:13 25 4
gpt4 key购买 nike

String ContractListst="'one','two','Three's','four' ";

String query = "select V_name,I_ID from tbl_Contract where V_name in (@ContractList)";

cmd.AddWithValue("@ContractList", ContractListst);

我希望将 Three's 视为忽略单引号的一个字符串

注意: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 问题,讨论如何在无法参数化的子句中正确处理用户输入。)

关于c# - 我如何使用具有单引号 (') 作为参数的字符串 我想在 C# 中使用选择查询,如下所示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com