MS-SQL中Insert操作插入的中文变成问号"???"的解决办法
2010-05-20 11:50
453 查看
编写的新闻管理系统添加新闻以后标题和内容都变成了"???",插入语句如下:
在网上查了一下,这是因为我的标题和内容的数据类型分别为nvarchar和ntext,而我的数据库排序规则是"SQL_Latin1_General_CP1_CI_AS",只要将其改为"Chinese_PRC_CI_AS"就可以了。可以使用Sql server management studio改,也可以使用sql语句改。sql语句如下:
但是我在该数据库排序规则的时候出现错误,错误信息:无法用排它锁锁定该数据库,alter database 操作失败。
后来发现修改插入语句可以显示中文,就是在字符前面加上字母"N",插入语句如下:
在业务逻辑层也需要进行一些修改,原先业务逻辑层的插入操作如下
将其中的SqlDbType.VarChar改为SqlDbType.NVarChar,修改代码如下:
修改完成以后再插入 中文就不会再显示问号了。
insert into news_info(info_title,info_content) values('标题','内容')
在网上查了一下,这是因为我的标题和内容的数据类型分别为nvarchar和ntext,而我的数据库排序规则是"SQL_Latin1_General_CP1_CI_AS",只要将其改为"Chinese_PRC_CI_AS"就可以了。可以使用Sql server management studio改,也可以使用sql语句改。sql语句如下:
alter database databaseName collate Chinese_PRC_CI_AS
但是我在该数据库排序规则的时候出现错误,错误信息:无法用排它锁锁定该数据库,alter database 操作失败。
后来发现修改插入语句可以显示中文,就是在字符前面加上字母"N",插入语句如下:
insert into news_info(info_title,info_content) values(N'标题',N'内容')
在业务逻辑层也需要进行一些修改,原先业务逻辑层的插入操作如下
public static bool AddNews(string title, string content)//添加新闻 { String strsql = "Insert into news_info(info_title,info_content,info_addtime,info_isshow,info_chinese) Values(@info_title,@info_content,@info_addtime,@info_isshow,@info_chinese)"; SqlParameter[] paras = new SqlParameter[5]; paras[0] = new SqlParameter("@info_title", SqlDbType.VarChar); paras[0].Value = title; paras[1] = new SqlParameter("@info_content", SqlDbType.VarChar); paras[1].Value = content; paras[2] = new SqlParameter("@info_addtime", SqlDbType.DateTime); paras[2].Value = System.DateTime.Now; paras[3] = new SqlParameter("@info_isshow", SqlDbType.Int); paras[3].Value = 0; paras[4] = new SqlParameter("@info_chinese", SqlDbType.Int); paras[4].Value = 1; if (NewsDB.Getcmd(strsql, paras)) { return true; } return false; }
将其中的SqlDbType.VarChar改为SqlDbType.NVarChar,修改代码如下:
paras[0] = new SqlParameter("@info_title", SqlDbType.NVarChar); paras[0].Value = title; paras[1] = new SqlParameter("@info_content", SqlDbType.NVarChar); paras[1].Value = content;
修改完成以后再插入 中文就不会再显示问号了。
相关文章推荐
- MS-SQL中Insert操作插入的中文变成问号"???"的解决办法
- MS-SQL中Insert操作插入的中文变成问号"???"的解决办法
- MS-SQL中Insert操作插入的中文变成问号"???"的解决办法
- Java插入中文到数据库中文变成问号???解决办法
- 部分中文插入mysql数据库变成问号的解决办法
- 使用Eclipse运行Java代码调用JDBC读写MySQL中文变成问号的终极解决办法
- PLSQL往Oracle数据库插入中文后变为问号 和 启动PLSQL时提示NLS_LANG在客户端不能确定的解决办法
- DB2 插入操作sql错误号-302 输入的值对指定的列无效解决办法
- mysql 不能插入中文的解决办法,修改mysql的字符集,操作见蓝色字体部分
- SQL server2005中插入汉字变成问号的解决办法
- SQL安装时出现"挂起的文件操作”错误解决办法
- Linux下oracle插入(导入)中文记录显示为问号问题及解决办法
- oracle数据库中文变成问号解决办法
- Linux下hibernate向mysql中插入中文变成问号问题的解决
- T-SQL 语句插入中文数据时数据库显示全是问号“???”的解决方法(数据库编码规则)
- mysql 不能插入中文的解决办法,修改mysql的字符集,操作见蓝色字体部分
- 安装sqlserver"以前进行的程序安装创建了挂起的文件操作"的解决办法
- 向MOSS站点的数据库中插入中文字符显示为问号‘?’的一种解决办法
- 使用Eclipse运行Java代码调用JDBC读写MySQL中文变成问号的终极解决办法
- SQLserver2005中插入汉字变成问号的解决办法