VS2015环境中,Vb.Net进行sql数据库操作时遇到的中文问号的问题
发布日期:2021-05-28 16:53:34 浏览次数:8 分类:技术文章

本文共 1723 字,大约阅读时间需要 5 分钟。

VS2015环境中,Vb.Net进行sql数据库操作时遇到的中文问号的问题

 

【背景介绍】

最近在VS2015环境下进行Vb.net编程,使用到了数据库操作,由于sql server这个软件过大,所以选择了VS2015自带的数据库进行操作。但是在进行数据库交互过程中,遇到了insert汉字结果在读取数据时显示为???的问题,在网上解决的方案比较少,不过后来尝试出了一种解决方案,亲测有效。

这是table1的定义如下:

【问题描述】

向表Table1中插入一条(5,'谷永普','A1234','20167',25)的数据,语句代码如下:

Dim cmd As New SqlCommand        Dim aaa As String = New String("insert into Table1 values (5,'谷永普','A1234','20167',25);")        Try            cmd = New SqlCommand(aaa, connection)            cmd.ExecuteNonQuery()            MessageBox.Show("操作成功")        Catch ex As Exception            MessageBox.Show("操作失败")        End Try

运行后,显示操作结果如下图:

可以看出,name部分应该显示为“谷永普”,结果显示为???,如下图:

而直接在脚本中运行sql插入语句,如下图:

结果也一样显示为??,如下如:

【解决方案】

这个问题有两种解决方案,分别如下:

方案一:

在Table1表中直接输入初始化数据,然后刷新表,可以解决问题,如下:

在读取数据时,预输入的数据也是可以正常显示的,如下图:

方案二:

虽然方案一可以暂时解决中文的问题,但是绝对不是我们想要的,因为无法灵活插入数据。回想问题出现的原因,实际上还是编码的问题,VS2015环境下是以UTF-8形式存储的,可能对中文存在显示异常的情况,当然最深层的原因在这里不进行讨论,着重说一下解决方案。

在进行插入语句时,在汉字前面加上“N”,表示以Unicode编码方式进行存储,Unicode是全球通用编码,可以解决乱码的问题。

如下图:

Dim cmd As New SqlCommand        Dim aaa As String = New String("insert into Table1 values (10,N'谷永普','A1234','20167',25);")        Try            cmd = New SqlCommand(aaa, connection)            cmd.ExecuteNonQuery()            MessageBox.Show("操作成功")        Catch ex As Exception            MessageBox.Show("操作失败")        End Try

运行结果如下:

使用查询语句也一样,要加N,如下图:

Dim ds As DataSet = New DataSet()        Dim adp2 As SqlDataAdapter = New SqlDataAdapter("select * from Table1 where name=N'谷永普';", connection)        adp2.Fill(ds)        Dim adp As SqlDataAdapter = New SqlDataAdapter("select * from Table1", connection)        DataGridView1.DataSource = ds.Tables(0)
运行结果正确,如下图:

转载请注明出处  https://blog.csdn.net/qq_34039018/article/details/79808848

转载地址:https://blog.csdn.net/qq_34039018/article/details/79808848 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:vs2013 +qt出现“无法找到源文件ui.xxx.h”解决办法
下一篇:Excel 柱形图修改图例大小,增加图例宽度

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年02月11日 13时40分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章