日期:2014-05-18  浏览次数:21073 次

C#中操作Mysql嚴重問題
我寫了一段C#(Net2.0)操作mySQL的代碼:用了MySQLDriverCS驅動,
結果出現一個問題,沒有CommandBuilder類似對象(MySqlCommandBuilder不存在).
問題:用什麼代替MySQLDriverCS驅動中CommandBuilder對象
部分代碼:(MySqlCommandBuilder不存在,所以不能編譯)

  MySQLCommand oCmd = new MySQLCommand(strSQL, oConn);
  //OdbcDataAdapter oDa = new OdbcDataAdapter();
  oDa.SelectCommand = oCmd;
  MySqlCommandBuilder n=new 
  MySqlCommandBuilder oBld = new MySqlCommandBuilder(oDa);

  DataSet Ds = new DataSet();

------解决方案--------------------
mysql for .net2.0的ODBC驱动
http://download.csdn.net/source/214322


使用 MySql.Data.MySqlClient这个名空间来连接 MySQL 服务器。
在C#中,可以使用using语句来引入MySQL数据接口:

using MySql.Data.MySqlClient;

指定了名空间后,我们就可以和MySQL数据库进行数据交互了。 
MySql.Data.MySqlClient这个名空间提供了许多用于处理MySQL数据的类。
下面是这些类的一个样本:

  * MySqlConnection: 管理和 MySQL 服务器/数据库的连接;

  * MySqlDataAdapter: 一套用于填充DataSet对象和更新MySQL数据库的命令和连接的集合;

  * MySqlDataReader: 让你能够从一个 MySQL 数据库读取数据。它是一个单向的数据流;

  * MySqlCommand: 提供向数据库服务器发送指令的功能;

  * MySqlException: 当发生问题时提供例外处理。

MySqlConnection conn = new MySqlConnection( connStr );//构造数据库连接

try
{
conn.Open();//打开连接
MySqlCommand cmd = new MySqlCommand("select * from user",conn);//构造查询命令
this.DataGrid1.DataSource=cmd.ExecuteReader();//执行查询,返回一个DataReader,设置DataGrid1的数据源为该DataReader
this.DataGrid1.DataBind();//DataGrid1数据绑定
conn.Close();//关闭连接
}
catch(MySqlException ex) //捕获异常
{
Response.Write(ex.Message);//向页面写异常
------解决方案--------------------
可以用ODBC 驱动, 

引用空间 using System.Data.Odbc;

 连接字符串这样写 con = new OdbcConnection(" driver={mysql odbc 3.51 driver}; Data Source=(local);DataBase=你的数据库名;User ID=sa;PWD=sa Stmt=Set Names 'gbk';timeout=5");

可以连接成功,