仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 572|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之详解:怎样在.NET中会见MySQL数据库?

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是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:52 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
分手快乐 该用户已被删除
板凳
发表于 2015-1-24 17:41:34 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
柔情似水 该用户已被删除
地板
 楼主| 发表于 2015-2-2 11:29:01 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
不帅 该用户已被删除
5#
发表于 2015-2-7 19:08:51 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
爱飞 该用户已被删除
6#
发表于 2015-2-23 01:15:35 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-7 05:25:46 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
简单生活 该用户已被删除
8#
发表于 2015-3-14 12:42:47 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
深爱那片海 该用户已被删除
9#
发表于 2015-3-21 08:59:43 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-9 06:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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