本帖最后由 rockage 于 2016-8-8 13:03 编辑
关于如何建立环境,请参考另一篇文章:http://www.stoneren.net/forum.ph ... 6636&extra=page%3D1
本篇主要讲几个例子,老规矩,不讲原理,直接从实例出发:
1. 连
2. 读
还有一种情况,远程数据库不止一张表,下面的例子讲解如何一次性读取多表:
如果不做映射,那么访问表1是这样的:ds.Tables("all_table") 和 ds.Tables("all_table1")
做了映射后则变成:ds.Tables("apple") 和 ds.Tables("orange")
3. 改
关于如何建立环境,请参考另一篇文章:http://www.stoneren.net/forum.ph ... 6636&extra=page%3D1
本篇主要讲几个例子,老规矩,不讲原理,直接从实例出发:
1. 连
Dim myConnectionString As String = "server=服务器IP;uid=用户名;pwd=密码;database=数据库名;charset=utf8;Pooling=True"
Dim cn As New MySql.Data.MySqlClient.MySqlConnection
cn.ConnectionString = myConnectionString
cn.Open()建立连接相当简单,服务器这些常规的就不说了,charset=utf8这个相当关键,在Windows 10下面,少了这一个选项update进服务器的数据将全是乱码,Pooling=True表示打开连接池,启用这个功能可以提高数据连接效率。另外还要注意在Mysql那边创建数据表的时候一定要使用UTF8编码,否则会大部分汉字是正常显示,而极小部分汉字是乱码这种十分头疼的问题。这里给出一个创建例子:CREATE TABLE `nuan_customer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`groupid` int(11),
`name` varchar(255) DEFAULT NULL,
`nickname` varchar(255) DEFAULT NULL,
`point` int(11),
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8主要是DEFAULT CHARSET=utf8这个设置,一定要加上。2. 读
Dim cn As New MySql.Data.MySqlClient.MySqlConnection
Dim da As New MySqlDataAdapter("select * from tablename;", cn)
Dim ds As New DataSet
cn.ConnectionString = myConnectionString
cn.Open()
da.Fill(ds, "customer") '用fill方法自定义一个表名
cn.Close()
End If这是一个最简单的例子,创建一个DataAdapter,然后用一句select语句读出最后用fill方法填充到本机内存表。还有一种情况,远程数据库不止一张表,下面的例子讲解如何一次性读取多表:
Dim cn As New MySql.Data.MySqlClient.MySqlConnection
Dim da As New MySqlDataAdapter("select * from 表1;select * from 表2") '两个select之间用;号隔开
Dim ds As New DataSet
cn.ConnectionString = myConnectionString
da.Fill(ds, "all_tables") '用fill方法自定义表名,第一个表叫all_tables,第二个表叫all_tables1如果不喜欢这种系统自动生成的表名,还可以完全用自定义的表名做映射,仍然是上面那个例子:Dim dtm1, dtm2 As Common.DataTableMapping
dtm1 = da.TableMappings.Add("all_tables", "apple")
dtm2 = da.TableMappings.Add("all_tables1", "orange")
da.Fill(ds, "all_tables") '最后用fill填充,注意映射一定要放在填充操作之前如果不做映射,那么访问表1是这样的:ds.Tables("all_table") 和 ds.Tables("all_table1")
做了映射后则变成:ds.Tables("apple") 和 ds.Tables("orange")
3. 改