在SQL查询中转义值(带有SQL连接器的C#)

Sna*_*ake 8 c# mysql escaping

我知道我可以使用参数,但是什么是转义字符串序列的正确方法?查询可能是这样的:

"INSERT INTO records (ReferenceID,Name,Note,Author) VALUES ('" + ID+ "','" + addlevel.textBox1.Text + "','"+addlevel.textBox2_note.Text+ "','"+Program.Username+"')";
Run Code Online (Sandbox Code Playgroud)

我只是好奇,只是想知道:)

编辑:那怎么样?"CREATE TABLE"+ string"....参数不能在这里使用!

Jam*_*Ide 16

如果需要执行数据库操作(如创建表),则应使用SQL Server管理对象而不是执行SQL字符串.

对于CRUD操作,参数绝对是唯一的真实路径.

更新:似乎MySQL客户端库包含一个帮助这个不明智的任务的方法.您可以调用MySqlHelper.EscapeString(string).


Jon*_*eet 14

正确的方法使用参数.

"只是说不"试图逃避自己 - 这很容易出错.为什么你认为你会逃离他们手动而不是使用参数的?


Guf*_*ffa 7

如果你真的,真的,真的需要自己逃避(在你的例子中没有迹象):

string EncodeMySqlString(string value) {
   return value.Replace(@"\", @"\\").Replace("'", @"\'")
}
Run Code Online (Sandbox Code Playgroud)