`

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

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

呵呵!

分享到:
评论

相关推荐

    完整版 MySQL8.0从入门到精通 MySQL数据库教程 全套PPT课件资源集合 共26个章节 含全部源代码.rar

    完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库...

    asp.net开发常用整理集合

     Asp.net页面内传参数方法  调用存储过程(两种方法比较)  调用存储过程通用类DBHelper  加密解密  SQL常用DBHelper  Asp.net存储过程无限分类  TreeView无限分类  无限分类MVC  荧光棒效果 获取...

    .NET DbHelper 数据访问类(MSSQL Mysql ORACLE)

    个人曾经写过的数据访问接口,包含:MSSQL、Mysql、Oracle等数据库的公共处理接口。可以拿过来直接使用,放在手里好多年了。 IDatabase接口声明如下: namespace Simple.Database { /// /// IDatabase 接口 /// ...

    简单的ADO.net数据访问客户端

    /// Mysql数据库访问客户端。 /// public class MysqlDbClient : AbstractDbClient { private readonly string _connectionString; /// /// 使用指定的数据库类型和连接字符串初始化的新实例。 /// /// ...

    asp.net知识库

    在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--...

    MySql.Data.dll各版本.rar_MYSQL_MYSql.data.ll_MySql.Data.dll

    .net 访问数据库必须要的文件,mysql.data.ll。里面集合了好几个版本,大家可以去下载。

    DbEntry.Net3.9参考手册.chm

     目前,数据库部分已经支持多主键、多表联合查询、快速分页集合、 隐式数据库事务、连贯API查询、ActiveRecord风格查询、动态对象、部 分保存、自动创建数据表、一对一、一对多、多对多关系等功能,具体 实现请参阅...

    分布式文档存储数据库之MongoDB访问控制的操作方法

    我们在mysql数据库中,我们通过给账号授权的方式达到控制哪些用户可以从哪些主机访问数据库,对数据库有哪些操作;其中账号由用户名称和主机地址构成;在mongodb中采用的不是用户+主机地址的方式

    DataBaseInterface.zip

    .net 相关的数据库通信接口集合类库, 包括 sqlserver,oracle,mysql,sqlite等数据库. 方便开发人员开速进行开发.

    MySQL 5.1中文手冊

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL 5.1官方简体中文参考手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL 5.1参考手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL5.1参考手册官方简体中文版

    获取最新CHM及PDF版本,请访问:hemon.ecjtu.net 。 张伟,华东交通大学。 摘要 这是MySQL参考手册 它涉及MySQL 5.1至5.1.2-alpha版本。 文档生成于: 2005-11-15 ----------------------------------------...

    MySQL 5.1参考手册 (中文版)

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. ...

    MySQL 5.1参考手册中文版

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? ...

    JavaSwing 员工工资管理系统 静态版 不含数据库

    项目介绍 ...系统可以使用Java集合存储数据,也可以使用MySQL数据库。 这个是不含数据库的版本,数据库版本见https://download.csdn.net/download/u011731544/88301209

    Mysql的第一章,知识要点

    数据库(database,DB):有组织结构的数据集合 3.数据库管理系统(database manegemen syatem,DBMS):是一个系统软件平台,是数据库应用系统的核心 4.数据模型: 层次模型 网状模型 关系模型 5.SQL:操作关系型...

    MYSQL中文手册

    1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? ...

    CrudNet:.NET 的简单 CRUD 存储库库,以及各种数据库的实现

    数据网络 .NET 的简单 CRUD 存储库库,... MongoDB 需要覆盖以仅指定连接字符串和集合名称,其中 MySql 需要一组命令和对象构建器实现。 但是,这两种实现都将遵循相同的接口,并且可以在应用程序中互换或并排使用。

Global site tag (gtag.js) - Google Analytics