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