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

时间:2015-10-08 12:33:01

标签: c# sql asp.net

String ContractListst =“'one','two',' Three's ','four'”;

String query =“select t_name,I_ID from tbl_Contract其中V_name in(@ContractList)”;

cmd.AddWithValue(“@ ContractList”,ContractListst);

我希望三个被视为忽略单引号的一个字符串

注意:我从另一个函数获取ContractList

1 个答案:

答案 0 :(得分:2)

两件事......

首先,虽然您在C#中没有引用问题,但是您发现结果SQL中存在引用问题。所以你必须逃避报价。在SQL中,通过连续使用两个单引号来完成:

  NSString *recipient =textField.text;
   NSArray *recipients = [NSArray arrayWithObjects:recipient, nil];

其次,虽然我赞赏你使用查询参数(很多人根本不使用它们),但在这种情况下这不会起作用。它们适用于单个值,但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子句的用户输入执行此操作,会非常小心。 (我很确定存在Stack Overflow问题,讨论如何在一个无法参数化的子句中正确处理用户输入。)