一个简单的SQL问题:使用包含'字符的文本字符串创建SQL插入语句

Kas*_*sen 1 c# sql

我遵循的语法

INSERT INTO Table1
VALUES (value1, value2, value3…)
Run Code Online (Sandbox Code Playgroud)

到目前为止这个工作得很好.但现在我有一些包含普通英文文本的值,比如"我要回家了".'字符破坏了C#中的SQL命令.我写了以下内容:

command.CommandText = "INSERT INTO Bio VALUES ('" + name + "','"I'm going home" + "');
Run Code Online (Sandbox Code Playgroud)

评估为

INSERT INTO Bio VALUES ('Peter','I'm going home')
Run Code Online (Sandbox Code Playgroud)

这显然是行不通的.如何确保特殊字符不会破坏SQL语句?

Pet*_*hev 8

使用SqlParameter在上帝的份.否则,您的程序将容易受到SQL注入攻击.它还将解决您的特殊字符问题.

  • 除此之外,参数化查询更有可能从优化中受益 - 预编译,服务器端缓存等. (3认同)