在sqlserver 数据库表中插入中文,查看表,中文显示乱码

问题描述

在sqlserver 数据库表中插入中文,查看表,中文显示乱码

sprintf(szSQL,"insert into %s (fromid,toid,time,msg,fontface,fontsize,fontcolor,fontflags) VALUES (%u,%u,%u,'%s','%s',%u,%u,%u)",TABLE_IM_MSG,ulFromID,ulToID,tCurrentTime,strMsg.c_str(),strfontface.c_str(),fontsize,fontcolor,fontflags);

然后执行execute(szSQL ),然后查看表,msg字段的值显示中文乱码,但是英文是没问题的

解决方案

一、登陆“Microsoft SQL Server Management Studio”,然后选择对应的数据库的属性,打开属性标签。
二、找到编码属性“collation”,然后修改为Chinese_PRC 即可

解决方案二:

在你要插入的中问前加“N” 例如 insert table values(N'插入的值')

解决方案三:

试一下:insert into promary values(1,N'北京市') 。既:插入语句中有中文前加一个N

解决方案四:

要显示使用Unicode 编码的数据库字段中存储的字符时,必须使用类似这样的语句:select * from table where title like N'%标题%'

就是将要查询的字符串前面的“'”,的前面加上一个大写的“N”,形如“N'”,N和‘之间必须紧挨着,中间不能有空格

解决方案五:

字符集问题 你讲数据库的字段字符集和输入输出的字符集设置成一样的 就不会有这种问题了

解决方案六:

看下出问题的字段类型是否为nvarchar类型。

解决方案七:

各位注意啊,我的问题是,我在数据库里直接执行查询语句

insert into uvc_ims_msg (msg) values ('你好')

是不会出现乱码滴,只有当在程序里调用SQL语句,才会出现乱码

解决方案八:

我最近也遇到这样问题,请问解决了么?

时间: 2024-09-28 20:47:45

在sqlserver 数据库表中插入中文,查看表,中文显示乱码的相关文章

Excel工作表中使用模拟运算表的方法

  Excel工作表中使用模拟运算表的方法          1.创建一个新的Excel工作表,并在工作表输入数据.在B9单元格中输入提成金额的计算公式"=$B$2*$B$3",如图1所示. 图1 创建工作表并输入公式 2.在B10:B23单元格区域中输入提成比率,然后选择用于创建模拟运算表的单元格B9:I23,在"数据"选项卡的"数据工具"组中单击"模拟分析"按钮,在打开的下拉列表中选择"模拟运算表"选项

定时任务-sqlserver数据库,按照指定日期将表中对应时间段内的记录备份出去。

问题描述 sqlserver数据库,按照指定日期将表中对应时间段内的记录备份出去. 业务需求: 数据库自2009年起有5年的数据量. 数据库只保存近两年的数据.比如 2012-01-01 ~ 2014-01-01 首先将 2010-01-01 ~ 2012-01-01 的数据保存到大文件夹里[比如 D:2010年及2011年数据],以月份命名各个文件夹[每个文件夹里有当月的所有表,表中有当月的记录] 后将 2010-01-01 ~ 2012-01-01 的数据从数据库中删除 然后每一个月的最后一

c#-C#向数据库表中插入信息。。求不吐槽命名规范

问题描述 C#向数据库表中插入信息..求不吐槽命名规范 if (textBox5.Text.Trim() == string.Empty || textBox4.Text.Trim() == string.Empty) { MessageBox.Show(""请输入课程号和课程名!""); } else { string consqlserver = ""server = .;Initial Catalog=Students;integrated

mysql数据库表中插入一行新纪录时,调用一个java程序

问题描述 mysql数据库表中插入一行新纪录时,想要通知调用一个java程序,在网上查了下,说可以使用触发器,监听数据表中的变化,但是触发器器能直接调用外部的java程序吗,如果可以,该怎么做.或者说除了触发器以外,有好的其他方法,有想过去轮训数据库,但经常访问数据库效率太差了,所以想看看有没有其他的实现方法 解决方案 解决方案二:oracle的应该可以,你参考一下这两个链接:mysql的即使能实现,估计也很难:解决方案三:引用1楼u012724379的回复: oracle的应该可以,你参考一下

sqlserver中向表中插入多行数据的insert语句_MsSql

下面把在sql吧里一位高手的解决方法,公布下.供大家参考: 假设有个表有 学号.姓名.学校 这三列 然后向这个表中插入 040501 孙明 山东大学 040502 李浩 山东师范 040503 王刚 烟台大学 怎么插入这三行数据啊~~~~~~~ 复制代码 代码如下: insert 表名 select '040504','孙明','山东大学' union select '040502','李浩','山东师范' union select '040503','王刚','烟台大学'

sqlserver中向表中插入多行数据的insert语句

下面把在sql吧里一位高手的解决方法,公布下. 供大家参考: 假设有个表有 学号.姓名.学校 这三列 然后向这个表中插入 040501 孙明 山东大学 040502 李浩 山东师范 040503 王刚 烟台大学 怎么插入这三行数据啊~~~~~~~ 复制代码 代码如下: insert 表名 select '040504','孙明','山东大学' union select '040502','李浩','山东师范' union select '040503','王刚','烟台大学'

一列一列向access表中插入数据,列数是一个变量,用循环,用什么sql语句

问题描述 一列一列向access表中插入数据,列数是一个变量,用循环,用什么sql语句 用sql语句向ACCESS的一张表中添加数据,因为具体的列数还不清楚,所以想用循环一列一列向ACCESS表中插入数据,采用insert,为什么插入30行数据(即一列),当插第二列数据时就从第31行,第二列开始了(应该是第一行第二列开始).如果不用insert,用update那语句怎么写,一直出错. 解决方案 你的数据库表结构有问题.你应该把你的列作为行来插入.数据库中的表,列就应该是确定的. 解决方案二: 你

JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?

问题描述 JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ? JAVA两个部署在不同服务器上的程序访问同一个表,如何避免同时向这个表中插入数据 ?刚写了个程序发现存在这个问题,原以为这种概率不会太高,但还是存在,怎么解决?谢谢 解决方案 其实和进程互斥的原理应该是一样的吧,在某一服务器访问该公共表的时候加锁,并同步更新数据至所有可达服务器,这样别的服务器也有访问请求时,就会等锁解开再进行.加锁的服务器程序应负责在释放资源后解锁. 解决方案二: 情况是这样的,现在

在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据?

原文 http://blog.csdn.net/quou2002/article/details/596509 Sql2005中,提供了uniqueidentifier 数据类型.说白了,就是个GUID,这种类型开发时倒是很有必要的. 今天程序中遇到了这个问题:表里定义了一个uniqueidentifier 列,Asp.net程序需要向表中插入新的数据. Insert 语句由数据源控件自动生成:INSERT INTO [morning_Department] ([DepartmentId], [