sql 语句插入一个带有单引号的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句插入一个带有单引号的值相关的知识,希望对你有一定的参考价值。

for (int j = 0; j < dt.Rows.Count; j++)

string type = dt.Rows[j][1].ToString();
string norms = dt.Rows[j][2].ToString();
string sqlinsert = string.Format(@"insert into ab values(N'" + type + "',N'" + norms + "')");
SqlConnection conn1 = new SqlConnection(sql.ConnectionString);
conn1.Open();
SqlCommand cm = new SqlCommand(sqlinsert, conn1);
cm.ExecuteNonQuery();

插入的时候type和norms的值是变动的,有些行的值可能含有单引号
例如 第一行type=17'18
第二行type=16
用我上面的语句,运行时会提示17附近缺少单引号
这要怎么解决呢?
不要和我说用二个单引号或者用\'来转义解决,因为我没有办法改动数据库中的数据,我只能修改我的语句,使编译通过,并插入成功

参考技术A 用一个判断语句,如果你是用的C#的话,可以用split(“‘”)切割函数,就是遇到'就把字符串切割两部分,在中间插入转义字符\然后再拼接回去
不过你那values(N是怎么回事,这儿有个N是不是有问题
参考技术B C# 里面, 用参数化处理。

string sqlinsert = "insert into ab values(@type, @norms)";
...这里一样...
SqlCommand cm = new SqlCommand(sqlinsert, conn1);
// 定义要查询的参数.
cm .Parameters.Add(new SqlParameter("@type", type ));
cm .Parameters.Add(new SqlParameter("@norms", norms ));
cm.ExecuteNonQuery();

参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/ba83a90532a591017aec2c7c.html

本回答被提问者和网友采纳
参考技术C 可以在C#中,对字符串Replace,如type.replace("'","''"),把一个单引号替换成两个,保存的结果是一个单引号 参考技术D SQL> insert into tt values ('a'||chr(39)||'b');

1 row created.
用chr(39)转义下 '
通过'xxxx'||chr(39)||'yyyyy'就可以了

如何用sql语句插入一个带有单引号的值

比如,一个字段类型是varchar(20),我要用insert语句插入一个带有单引号的值,如"sdf'dfsdf",sql语句怎么写啊?

参考技术A 在sqlserver中用两个就代表一个单引号
insert into tb(field) values('a''bc');

mysql中用\'
insert into tb(field) values('a\'bc');本回答被提问者和网友采纳
参考技术B 在sqlserver中用两个就代表一个单引号
insert into tb(field) values('a''bc');

mysql中用\'
insert into tb(field) values('a\'bc');
参考技术C 用一个判断语句,如果你是用的c#的话,可以用split(“‘”)切割函数,就是遇到'就把字符串切割两部分,在中间插入转义字符\然后再拼接回去
不过你那values(n是怎么回事,这儿有个n是不是有问题
参考技术D 把输入法在全角状态,就能输入了 看起来一样的 第5个回答  2019-09-25 C#
里面,
用参数化处理。
string
sqlinsert
=
"insert
into
ab
values(@type,
@norms)";
...这里一样...
SqlCommand
cm
=
new
SqlCommand(sqlinsert,
conn1);
//
定义要查询的参数.
cm
.Parameters.Add(new
SqlParameter("@type",
type
));
cm
.Parameters.Add(new
SqlParameter("@norms",
norms
));
cm.ExecuteNonQuery();

以上是关于sql 语句插入一个带有单引号的值的主要内容,如果未能解决你的问题,请参考以下文章

如何插入包含单引号的字符串

sql语句插入的数据中含有单引号怎么办?

Oracle中插入带有带引号的字段数据(解决办法)

如何插入包含撇号(单引号)的值?

在 JDBC 中为 SQL Query 插入单引号不起作用

如何向数据库插入带有单引号(')的字符串?--在做数据插入是一定要考虑,否则有单引号系统就会报错