C#--conn--mysql

第一种方案DBC.NET解决方案 MyODBC Driver

优点: 兼容性好, 易于使用
缺点: 运行效率差, 原因是架构包含太多层

架构:
ODBC.NET应用程序 <->ODBC.NET Provider <-> MYSQL ODBC 启动 <-> MYSQL API
<-> MYSQL 服务器

安装步骤:
1, 下载安装最新的.NET FRAMEWORK
2,安装MYSQL 服务端
3, 下载安装2.6版以上的MDAC(Microsoft Data Access Components )
地址:http://www.microsoft.com/data/
4, 下载 ODBC.NET Provider
http://www.microsoft.com/downloads/...ReleaseID=35715
5, 安装MySQL ODBC Driver ---- MyODBC 3.51;
http://www.mysql.com/downloads/api-myodbc-3.51.html
6, 安装一个MyODBC DSN

ODBC.NET安装后有如下几个操作类OdbcCommand, OdbcConnection



第二种方案:使用MYSQL NATIVE .NET Providers(推荐这个, 因为安装和使用都非常方便)

优点:速度快, 开发容易
缺点:是非标准访问技术

1,你可以参看dbProvider

http://www.einfodesigns.com/products.aspx

2, 或者MySQLNet
http://sourceforge.net/projects/mysqlnet/

3,推荐这个corelab开放的一个MYSQL.NET控件
http://crlab.com/mysqlnet/
有免费的下载

有如下几个类似于SQL 操作类
MySqlConnection, MySqlCommand,
MySqlDataReader,MySqlDataAdapter,MySqlParameter,MySqlTransaction

================================================

下面贴出第二种解决方案的部分源代码, 基本和SQL COMMAND等使用没有区别

string DataSource = "localhost";
string Database = "GameLib";
string UserID = "root";
string Password = "root-2003-";

string MyConString = Data Source=" + DataSource +
";Database=" + Database +
";User ID=" + UserID +
";Password=" + Password;

try{

MySqlConnection mycon = new MySqlConnection(MyConString);
mycon.Open();
}

finally{
mycon.Close();
}



第三种方案: 使用OLEDB.NET

MYSQL暂时不支持 MyOLEDB, 所以不采用OLEDB这个方案

posted on 2012-03-07 16:46 青蛙學堂 阅读(558) 评论(2)  编辑 收藏 引用 所属分类: 數據庫軟件布袋

评论

# re: C#--conn--mysql 2012-03-07 17:01 传多个值

SQLOLEDB是OleDb的Sqlserver驱动程序
你用Mysql,肯定不能这样写

要么通过ODBC,要么这样:

下载mysql的.net驱动,这个在mysql下载页面就有
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors

把dll复制到项目的bin目录里(Mysql.Data.dll),在项目里引用这个 dll

然后记得
using MySql.Data.MySqlClient;
using System.Data;

String ConnString = "server=127.0.0.1;user id=root; password=haha; database=haha; pooling=false;charset=utf8";

下面的,基本就是将OleDb换成MySql

MySQLConnection DBConn;
DBConn = new MySQLConnection(ConnString);
DBConn.Open();

MySQLCommand DBComm;
DBComm = new MySQLCommand("select * from 表",DBConn);

MySQLDataReader DBReader = DBComm.ExecuteReaderEx();


其实大多数数据库在.net下的驱动,都是实现了跟OleDb或者Sqlserver类似的名字

ps,microsoft.jet.oledb.4.0;这是ADO的东东,不要带到ADO.net中来
补充回答: mysql属于数据库服务器,没什么事不要管它数据库存在哪,没有必要管数据存放在哪,那是安装程序的时候做的,只有像Access类的文件数据库,才会有一个文件,你要留意它存在哪
继续追问: 那也就是说不能直接用oledb来连接mysql数据库了,是吧
  回复  更多评论   

# re: C#--conn--mysql 2012-03-08 08:17 传多个值

报错:1130-host ... is not allowed to connect to this MySql server
解决方法:
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT //退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!  回复  更多评论   

只有注册用户登录后才能发表评论。
<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿(8)

随笔分类

随笔档案

收藏夹

青蛙学堂

最新评论

阅读排行榜

评论排行榜