.NET访问mysql数据库方法集合

http://blog.sina.com.cn/u/4b6522390100089i(转)
原来只计划用java/jsp+mysql开发的公司工作流网站,但网站开发出来后,系统运行效果不错。于是公司决定自行开发MIS。
用什么方案来开发MIS呢?倒是费了一番心思。经过GOOGLE找了半天,也咨询了一些“牛人”。结论是用java来写MIS,效率太低,而且SWING有太多限制,像类似tree、grid等控件。当然用java来写,能较好地与目前的网站结合。
最后决定用VB2005,但数据库不更换,只能用MySql。这样就会存在完全不同的两套系统,至少在数据存储层都是MYSQL。而且mysql是免费的,也不会加大公司开发成本。当然也可用盗版的ORACLE或是MSSQL,但个人觉得盗版总不是件光彩的事。
下面是自己用VB2005连接MYSQL5.0的一些总结:

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 :[email protected]

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,hitsfromDv_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语句执行一遍就可以了。

这是我完成这项任务的一点小小体会,拿出来和大家分享了。

呵呵!

你可能感兴趣的:(sql,.net,mysql,UI,SQL Server)