仓酷云

标题: ASP.NET网站制作之详解:怎样在.NET中会见MySQL数据库? [打印本页]

作者: 柔情似水    时间: 2015-1-16 22:30
标题: ASP.NET网站制作之详解:怎样在.NET中会见MySQL数据库?
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)假如你不是只在年夜团体公司事情过的话,你必定会无机会打仗到MySQL,固然它其实不撑持事件处置,存储历程,可是它供应的功效必定能满意你的年夜部分需求,别的,简便的MySQL也有一些它独到的上风,在有些时分,它的速率乃至凌驾年夜型数据库。
那末怎样在.NET中会见MySQL数据库呢?大概良多人即刻会说:用OLEDB嘛,可是现实上接纳.NETOleDbDataProvider其实不能会见MySQL,假如你利用的话,体系会提醒你:“NetDataOLEDB供应程序(System.Data.Odbc)不撑持MSDASQL供应程序(用于Odbc驱动程序的MicrosoftOLEDB供应程序)。”,是甚么缘故原由我其实不晓得,依照MySQLDriverCS的作者的说法就是它被“abandonedbytheowner”,呵呵,也许另有些故事。
幸亏,我们另有别的的选择,这里就要先容两种会见MySQL数据库的举措。
利用ODBC.NET
ODBC.NET(全称ODBC.NETDataProvider)是一个收费的.NETFramework附加组件,必要到微软公司的网站上往下载,下载地点为:http://download.microsoft.com/download/dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi,它必要体系已安装MDAC2.7大概更高版本。别的,还必要安装MySQL的ODBC驱动程序,下载地点为:http://www.mysql.com/downloads/api-myodbc-2.50.html,还必要在"ODBC数据源办理器"中设置一下DSN,以下图所示:



在工具的计划上,ODBC.NET也跟OLEDB,SQL等一样,分离为OdbcConnection,OdbcCommand,OdbcDataAdapter,OdbcDataReader,用法也完整一样,假如你但愿用ODBC.NET来取代之前的OleDb.NETDataProvider,现实上完整能够经由过程查找交换的举措来修正你的程序。
以下是一段代码示例:
  try
  {
  stringconstr="DSN=MySQL;"+"UID=;"+"PWD=";;
  conn=newOdbcConnection(constr);
  conn.Open();
  stringquery="insertintotest.dbtablevalues10,disksidkfsdi,asdfaf,adsfasdf)";
  stringtmp=null;
  OdbcCommandcmd=newOdbcCommand(query,conn);
  for(inti=0;i<100000;i++)
  {
  cmd.ExecuteNonQuery();
  }
  cmd.Dispose();
  conn.Close();
  query="select*fromtest.dbtable";
  OdbcCommandcmd2=newOdbcCommand(query,conn);
  conn.Open();
  OdbcDataReaderreader=cmd2.ExecuteReader();
  while(reader.Read())
  {
  tmp=reader[0].ToString();
  tmp=reader[1].ToString();
  tmp=reader[2].ToString();
  tmp=reader[3].ToString();
  }
  conn.Close();
  query="deletefromtest.dbtable";
  OdbcCommandcmd3=newOdbcCommand(query,conn);
  conn.Open();
  cmd3.ExecuteNonQuery();
  }
  catch(Exceptionex)
  {
  MessageBox.Show(ex.Message);
  }
  finally
  {
  conn.Close();
  }
只需是用C#写过数据库使用的人必定能晓得,下面的代码实行了十万次拔出数据和读取数据,最初将数据纪录全体删除的操纵。
利用MySQLDriverCS
大概年夜部分的人都不晓得这个器材,MySQLDriverCS是MySQL数据库的一个收费开源的.NET驱动程序。和Sql.NETDataProvider是为SqlServer一样,它是专门为MySQL计划的,能够叫做MySQL.NETDataProvider。利用他不必要分外的往设置ODBC数据源,基础上只需能毗连到MySQL就可以经由过程MySQLDriverCS来会见。
MySQLDriverCS是SourceForge.NET上的一个项目,不外不晓得甚么缘故原由,这个网站在国际会见不到。
上面是利用MySQLDriverCS的代码示例:
和下面的那段代码几近千篇一律,所分歧的是Odbc酿成了MySQL,别的,必要注重的一点是Command的ExecuteReader办法在MySQLDriverCS中酿成了ExecuteReaderEx,另有些渺小的不同请参考附带的文档具体的先容。
功能测试
有些读者实在已看出来我以上写的那段代码的意图,对了,实在目标就是用来举行功能测试的。以上两段代码的实行工夫分离是:ODBC.NET为24秒摆布,MySQLDriverCS为17秒摆布。了局其实不出人不测,作为MySQL的公用数据驱动程序,MySQLDriverCS的速率年夜年夜快于ODBC.NET是在道理当中的。
总结
本文先容了两种MySQL数据库会见的办法,同时对它们的功能做了一个复杂的测试,但愿能为列位读者在接纳MySQL数据库开辟.NET使用的时分供应一个有代价的参考。

以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么?
作者: 第二个灵魂    时间: 2015-1-19 15:46
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
作者: 分手快乐    时间: 2015-1-24 17:41
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者: 柔情似水    时间: 2015-2-2 11:29
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
作者: 不帅    时间: 2015-2-7 19:08
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
作者: 爱飞    时间: 2015-2-23 01:15
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
作者: 愤怒的大鸟    时间: 2015-3-7 05:25
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
作者: 简单生活    时间: 2015-3-14 12:42
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 深爱那片海    时间: 2015-3-21 08:59
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2