A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海继峥 中级黑马   /  2012-4-25 13:51  /  1799 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

insert into Table_1(Name,Age) values ('赵六',34);
执行这句话为什么会有赵六在表中显示为??,照着视频做的一般还是那样。着为什么怎么改?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
name nvarchar(10),  你的name列是这样设置的么,还有那个Sql后面的分号去掉试一下。。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
为什么在表里可以直接改成赵六 ,而用语句就不能添加?  要是不能添加的话表里也应该不能添加吧?但是事实是可以啊。
能给我解释下吗?只是因为数据类型的原因吗?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
UTF-8编码的内容存入SQL SERVER数据库中的时候,要存储的字段必须设置为NVARCHAR类型,
SQL语句要在内容前加N表示,如insert into user (name) values (N&username&)
如果不使用 N 前缀,字符串将转换为数据库的默认代码页。这可能导致不识别某些字符。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
把数据类型改一下就okl了~~! Name 的类型改成 nvarchar(50) 就不会出现那样的问题了!

你直接在表里添加的话,应该是系统给你封装了,所以不会报错!但是运行的话还是会出错的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
insert into Table_1(Name,Age) values (N'赵六',34);
这样试一下,一般字符串前面要加上N的默认uTF-8编码的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
许庭洲 黑马帝 2012-4-27 09:10:45
7#
本帖最后由 许庭洲 于 2012-4-27 09:12 编辑

应该是数据库内Table_1表的Name字段类型有问题,把Name字段类型修改为nvarchar(8)试试看,希望对你有帮助!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马