在SQL查询中转义值(带有SQL连接器的C#)
我知道我可以使用参数,但是什么是转义字符串序列的正确方法? 查询可能是这样的:
"INSERT INTO records (ReferenceID,Name,Note,Author) VALUES ('" + ID+ "','" + addlevel.textBox1.Text + "','"+addlevel.textBox2_note.Text+ "','"+Program.Username+"')";
我只是好奇,只想知道:)
编辑:那怎么样? “CREATE TABLE”+ string“….参数不能在这里使用!
如果需要执行数据库操作(如创建表),则应使用SQL Server管理对象而不是执行SQL字符串。
对于CRUD操作,参数绝对是唯一的真实路径。
更新:似乎MySQL客户端库包含一个帮助这种不明智的任务的方法。 您可以调用MySqlHelper.EscapeString(string)。
正确的方法是使用参数。
“只是说不”试图逃避自己 – 这很容易出错。 为什么你认为你想要手动转义它们而不是使用参数?
如果你真的,真的,真的需要自己逃避(在你的例子中没有迹象):
string EncodeMySqlString(string value) { return value.Replace(@"", @"\").Replace("'", @"'") }
我认为你唯一需要做的就是value = value.Replace("'", "''")
当然你不应该这样做,但你知道。
编辑:显然这对MySQL来说都是错误的。 它应该适用于PostgreSQL,MS SQL和Oracle。
改用commnd参数。 它需要自己逃避。 这也是针对sql注入的解决方案。
上述就是C#学习教程:在SQL查询中转义值(带有SQL连接器的C#)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/943076.html