在c#字符串中添加引号?

在c#字符串中添加引号?,c#,string,C#,String,我在向mySQL查询字符串添加引号时遇到问题。我从其他人那里得到的解决方案似乎对他们有效,但对我无效 我正在尝试的是: string sql3 = "SELECT wPrice FROM Vehicle WHERE VIN = \"" + (vehicleVIN) + "\""; 我仍然得到的是: "SELECT wPrice FROM Vehicle WHERE VIN = \"58847722BRB\" 哪里出错了?永远不要编写使用串联字符串的SQL查询。。。请改用参数

我在向mySQL查询字符串添加引号时遇到问题。我从其他人那里得到的解决方案似乎对他们有效,但对我无效

我正在尝试的是:

 string sql3 = "SELECT wPrice FROM Vehicle WHERE VIN = \"" + (vehicleVIN) + "\"";
我仍然得到的是:

        "SELECT wPrice FROM Vehicle WHERE VIN = \"58847722BRB\"

哪里出错了?

永远不要编写使用串联字符串的SQL查询。。。请改用参数化查询:

String query = "SELECT wPrice FROM Vehicle WHERE VIN = @vin";
String vin = "58847722BRB";

using (SqlCommand command = new SqlCommand(query, connection))
{
    command.Prepare();
    command.Parameters.AddWithValue("@vin", vin);

    // ...
}
A给你。

你只在
\
后面放一个
字符,如果你需要两个
字符,你将需要两个
\
字符,就像
\“
一样

您还可以使用原始字符串,这是一个由
@
引入的字符串:

string strExample = @"This is a ""raw string""";

使用单引号:“使用SqlParameters而不是字符串连接来创建sql字符串以避免sql注入。是的,一定要使用参数化sql。”。总是。请注意,当您在调试器中查看字符串时,它会为您转义-您的字符串中没有任何反斜杠;使用实体框架并停止将SQL字符串写入代码!请参见(例如)如何构造参数化查询的问题。-@CaiusJard whisper Hibernate Hibernate作为旁注-如果您的数据库列是“整数”类型,并且您提供了“整数”作为字符串,那么它可能仍然可以工作,但是如果由于sqlServer将字符串自动广播为int而产生大量结果,那么速度会非常慢(在
where
条件下提供的字符串而不是int-只是来自不良经验的故事)