haidong 发表于 2010-2-25 10:48:14

技巧实例:如何在.NET中访问MySQL数据库

<p ><b>引言:</b>如果你不是只在大集团公司工作过的话,你一定会有机会接触到MySQL,虽然它并不支持事务处理,存储过程,但是它提供的功能一定能满足你的大部分需求,另外,简洁的MySQL也有一些它独到的优势,在有些时候,它的速度甚至超过大型数据库。<p >那么如何在.NET中访问MySQL数据库呢?也许很多人马上会说:用OLEDB嘛,但是事实上采用.NET OleDb Data Provider并不能访问MySQL,如果你使用的话,系统会提示你:"Net Data OLE DB 提供程序 (System.Data.Odbc) 不支持 MSDASQL 提供程序(用于 Odbc 驱动程序的 Microsoft OLE DB 提供程序)。",是什么原因我并不知道,按照MySQLDriverCS的作者的说法就是它被"abandoned by the owner",呵呵,兴许还有些故事。<p >幸好,我们还有其它的选择,这里就要介绍两种访问MySQL数据库的办法。<p ><b>使用ODBC.NET</b><p ><u>ODBC.NET(全称ODBC .NET Data Provider)</u>是一个免费的.NET Framework附加组件,需要到微软公司的网站上去下载,它需要系统已经安装MDAC 2.7或者更高版本。另外,还需要安装<u>MySQL的ODBC驱动程序</u>,还需要在"ODBC数据源管理器"中配置一下DSN,如下图所示:<p ><center><imgsrc="http://www.hh010.com/upload_files/article/244/9_7eanip1632427.gif"></center><p >在对象的设计上,ODBC.NET也跟OLEDB,SQL等一样,分别为OdbcConnection, OdbcCommand, OdbcDataAdapter, OdbcDataReader,用法也完全一样,如果你希望用ODBC .NET来代替以前的OleDb .NET Data Provider,事实上完全可以通过查找替换的办法来修改你的程序。<p >以下是一段代码示例:<p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>try{        string constr = &quot;DSN=MySQL;&quot; + &quot;UID=;&quot; +&quot;PWD=&quot;; ;        conn =new OdbcConnection(constr);        conn.Open();        string query = &quot;insert into test.dbtable values10,'disksidkfsdi', 'asdfaf', 'adsfasdf')&quot;;        string tmp = null;        OdbcCommand cmd = new OdbcCommand(query, conn);        for(int i = 0; i &lt; 100000; i++)        {                cmd.ExecuteNonQuery();        }        cmd.Dispose();        conn.Close();        query = &quot;select * from test.dbtable&quot;;        OdbcCommand cmd2 = newOdbcCommand(query, conn);        conn.Open();        OdbcDataReader reader = cmd2.ExecuteReader();        while(reader.Read())        {                tmp = reader.ToString();                tmp = reader.ToString();                tmp = reader.ToString();                tmp = reader.ToString();        }        conn.Close();        query = &quot;delete from test.dbtable&quot;;        OdbcCommand cmd3 = newOdbcCommand(query, conn);        conn.Open();        cmd3.ExecuteNonQuery();        }        catch(Exception ex)        {                MessageBox.Show(ex.Message);        }        finally        {        conn.Close();}</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><br><p >只要是用C#写过数据库应用的人一定能知道,上面的代码执行了十万次插入数据和读取数据,最后将数据记录全部删除的操作。                               <p align="center"><font color="FF0000" >1</font>2<span class="content01">下一页&gt;&gt;</span></p></p>
页: [1]
查看完整版本: 技巧实例:如何在.NET中访问MySQL数据库