黑马程序员技术交流社区

标题: SQL差入行的问题 [打印本页]

作者: 海继峥    时间: 2012-4-25 13:51
标题: SQL差入行的问题
insert into Table_1(Name,Age) values ('赵六',34);
执行这句话为什么会有赵六在表中显示为??,照着视频做的一般还是那样。着为什么怎么改?
作者: 张林春    时间: 2012-4-25 14:08
name nvarchar(10),  你的name列是这样设置的么,还有那个Sql后面的分号去掉试一下。。


作者: 海继峥    时间: 2012-4-25 14:25
为什么在表里可以直接改成赵六 ,而用语句就不能添加?  要是不能添加的话表里也应该不能添加吧?但是事实是可以啊。
能给我解释下吗?只是因为数据类型的原因吗?
作者: 张林春    时间: 2012-4-25 14:41
UTF-8编码的内容存入SQL SERVER数据库中的时候,要存储的字段必须设置为NVARCHAR类型,
SQL语句要在内容前加N表示,如insert into user (name) values (N&username&)
如果不使用 N 前缀,字符串将转换为数据库的默认代码页。这可能导致不识别某些字符。
作者: 蒋敦方    时间: 2012-4-25 14:44
把数据类型改一下就okl了~~! Name 的类型改成 nvarchar(50) 就不会出现那样的问题了!

你直接在表里添加的话,应该是系统给你封装了,所以不会报错!但是运行的话还是会出错的。
作者: 刘建法    时间: 2012-4-25 15:09
insert into Table_1(Name,Age) values (N'赵六',34);
这样试一下,一般字符串前面要加上N的默认uTF-8编码的
作者: 许庭洲    时间: 2012-4-27 09:10
本帖最后由 许庭洲 于 2012-4-27 09:12 编辑

应该是数据库内Table_1表的Name字段类型有问题,把Name字段类型修改为nvarchar(8)试试看,希望对你有帮助!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2