vb2005连接mysql
1 odbc连接mysql(Microsoft提供)
1.1 ODBC.NET(全称ODBC .NET Data Provider)是一个免费的.NET Framework附加组件,需要到微软公司的网站上去下载,
下载地址为:
http://download.microsoft.com/download/dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi,它需要系统已经安装MDAC 2.7或者更高版本。
1.2
至http://www.mysql.com/downloads/api-myodbc-2.50.html下载mysql Odbc驱动
1.3
安装完后,还需要在"ODBC数据源管理器"中配置一下DSN
这种连接方式不方便。客户机访问时要设置ODBC。
2 oledb连接mysql(mysql官方提供)
2.1 到 http://dev.mysql.com/downloads/connector/net/5.0.html,
下载 MySQL Connector/Net 5.0:
mysql-connector-net-5.0.3.zip
2.2 到 http://dev.mysql.com/downloads/visual-studio-plugin/index.html,
下载 MySQL Visual Studio Plugin 1.1:
MySQL.VisualStudio-1.0.2.zip
2.3 安装 MySQL Connector/Net 5.0,
注意:安装到 Final Setup Options 这一步时,要选中 Register Connector/Net in the
Global Assembly Cache 。
这样就可以使用vb2005中的工具菜单-->连接数据库-->连接Mysql了。
显然第二种方法更好。
下面是第二方法的示例代码
Dim pubsSQLConn As MySqlConnection 'db 连接
Dim conStr As String
pubsSQLConn = New MySqlConnection
conStr = "server=;user id=;pwd=;database=;port=" '连接字符串
pubsSQLConn.ConnectionString = conStr
pubsSQLConn.Open()
Dim tr As MySqlTransaction = pubsSQLConn.BeginTransaction '事务
Dim sql As String
sql = "insert into table(a,b) values('c','d') 'insert table '如果是select之类语句,最好用个dataAdapter
Dim cmd As New MySqlCommand(sql, pubsSQLConn, tr)
Dim records As Integer = cmd.ExecuteNonQuery() '执行
tr.Commit() '提交 提交失败也可回滚 我这边就不定了.
Debug.WriteLine(records) 结果应是>=1
Debug.Print(conStr)
pubsSQLConn.Close() '关闭连接
就这么多了,有兴趣可email :jarwang@sina.com
3. oledb连接mysql(出现版本问题,无法实现)(第三放提供)
采用MySQLDriverCS驱动的操作mysql
MySQLConnection conn = null;
string tmp = null;
string connstr = "Data Source=test;Password={2};User ID={1};Location={0};";
connstr=String.Format(connstr,this._ServiceName.Text.Trim(),this._UserId.Text.Trim(),this._Password.Text.Trim());
string query=" drop table if exists dbtable ";
try
{
string time1=System.DateTime.Now.ToString();
conn = new MySQLConnection(connstr);
conn.Open();
MySQLCommand cmd = new MySQLCommand(query, conn);
cmd.ExecuteNonQuery();
query="create table dbtable (id int ,col1 char(20) ,col2 char(20),col3 char(20) ) ";
cmd.CommandText=query;
cmd.ExecuteNonQuery();
query = "insert into test.dbtable values(10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";
cmd.CommandText=query;
for(int i = 0; i < 1000; i++)
{
cmd.ExecuteNonQuery();
}
//cmd.Dispose();
//conn.Close();
query = "select * from test.dbtable";
//MySQLCommand cmd2 = new MySQLCommand(query, conn);
//conn.Open();
cmd.CommandText=query;
MySQLDataReader reader = cmd.ExecuteReaderEx();
while(reader.Read())
{
tmp = reader[0].ToString();
tmp = reader[1].ToString();
tmp = reader[2].ToString();
tmp = reader[3].ToString();
}
reader.Close();
//conn.Close();
query = "delete from test.dbtable";
cmd.CommandText =query;
//MySQLCommand cmd3 = new MySQLCommand(query, conn);
//conn.Open();
cmd.ExecuteNonQuery();
query=" drop table if exists dbtable ";
cmd.CommandText =query;
cmd.ExecuteNonQuery();
cmd.Dispose();
MessageBox.Show(time1+"---" +System.DateTime.Now.ToString(),"操作完成!");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
---------------------------------------------------------------
利用MySQLDriverCS实现在.NET环境下访问MySQL数据库
最近首页“论坛热贴”这个板块的数据无法更新,最后发现原来是由于论坛的数据库移到了系统为Linux的服务器上后,用的是MySQL数据库,而“论坛热贴”这个板块是在.Net环境下开发的,所以无法直接掉用到论坛的数据。
这个问题我是第一次遇到过,根本没有着落。最后听我们大炮说有一个叫 “MySQLDriverCS”的东西可以在.Net环境下实现对MySQL数据库的访问,在网上看了一些它的用法,最后是这么解决这个问题的:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySQLDriverCS;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
MySQLConnection conn = null;
conn = new MySQLConnection(new MySQLConnectionString("##", "##", "##", "#").AsString);
conn.Open();
MySQLCommand commn = new MySQLCommand("set names gb2312",conn);
commn.ExecuteNonQuery();
string sql = "select title,topicID, boardId ,dateandtime,hits from Dv_topic order by dateandtime desc limit 10";
MySQLDataAdapter mda = new MySQLDataAdapter(sql,conn);
DataSet ds = new DataSet();
mda.Fill(ds, "table1");
this.Repeater1.DataSource = ds;
this.Repeater1.DataBind();
conn.Close();
}
}
就这样就可以实现在.NET环境下对MySQL数据的访问。在这之前还要做一些准备,下载MySQLDriverCS,安装,在安装文件夹下面找到MySQLDriver.dll,然后将MySQLDriver.dll添加引用到项目中就OK了。也许你对这行代码
MySQLCommand commn = new MySQLCommand("set names gb2312",conn);
commn.ExecuteNonQuery();
不太理解。这是因为如果没有这句话从数据库里读出的数据中如果有中文将显示乱码,只要把这个语句“set names gb2312”当作SQL语句执行一遍就可以了。
这是我完成这项任务的一点小小体会,拿出来和大家分享了。
呵呵!