设为首页收藏本站language 语言切换
查看: 1334|回复: 0
收起左侧

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

[复制链接]
发表于 2010-2-25 10:48:14 | 显示全部楼层 |阅读模式
<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><img  src="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; +&quotWD=&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[0].ToString();                tmp = reader[1].ToString();                tmp = reader[2].ToString();                tmp = reader[3].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>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-4 03:49 , Processed in 0.076052 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表