经验之谈:MySQL与ASP.NET配合更强大 |
开放源代码社区为了 扩大MySQL的 使用 规模,开发出了.Net框架(.NET Framework)中 可以 使用的数据库衔接器 。我们就来学习一下如何在.Net 利用程序中 使用MySQL 。 因为富有竞争力的价格和易于 使用,MySQL在市场占有率方面逐渐 晋升 。开放源代码社区为了 扩大MySQL的 使用 规模,开发出了.Net框架(.NET Framework)中 可以 使用的数据库衔接器 。我们就来学习一下如何在.Net 利用程序中 使用MySQL 。 每周三公布的TechRepublic的.NET通信,包括有网络服务, ASP.NET, ADO.NET, 和 Visual Studio .NET 有关的有用技巧与代码实例. 现在就自动订阅! MySQL 匆匆的成为了在 取舍数据库平台时一个切实可行的数据库 方案 。 可以 证实这丝毫的便是许多公司都 取舍mySQL作为他们的数据库平台,例如 Google、美联社(The Associated Press) 以及美国国家航空宇航局( NASA) 。 固然关于一个开放源代码来说,低廉的价格 一般被当作重要 长处来说服客户,然而关于象Google那样的大规模的组织来说,他们不会 释怀的把十分有用的信息 存放在一个惟独价格优势的数据库产品中 。MySQL真正的实力远远的超过了他的价格优势,他提供了 丰硕的来自开放源代码社区和商业化的附加工具 。 和.NET的数据整合 MySQL 社区已经开发出了MySQL的数据接口,他提供了衔接数据源和程序代码的 根本 性能 。在Windows平台上,有如下的MySQL衔接器: * MySQL Connector/Net 1.0 (之前被称为ByteFX.Data):是一个为MySQL设计的开放源代码.NET数据接口 。它是 彻底用C#来开发的,我们 可以在在 MySQL.com网站上找到它 。( 留神:在本文的例子中,我们都会 使用MySQL Connector/Net 1.0这个数据接口来衔接数据库,利用Windows安装程序即可轻易安装它,它的代码实例和文档也包括其中 。) * MySQLDirect .NET Data Provider: 是一个由 Core Lab 开发的商业数据接口 。他的价格由购买的许可证的类型决定,然而我们 可以下载它的试用版 。 假如你 使用 Mono,那么在 Mono网站上 可以找到PHP衔接器的下载 。假如你在Windows平台上运行Mono的话,你下载的衔接器包括了安装程序 。假如不是的话,那就要依据你的操作系统的 品种去下载 合适的衔接器了 。 使用MySQL数据接口 安装好MySQL的数据接口后,你必须在你的代码中引入它 威力 使用 。你 可以 使用 MySql.Data.MySqlClient这个名空间来衔接 MySQL 服务器 。在C#中, 可以 使用using语句来引入MySQL数据接口: using MySql.Data.MySqlClient; 另外,你也 可以在一个ASP.NET的网页表单(Web Form)中通过 使用导入(Import)指令来引入MySQL数据接口: 或者,你也 可以在你的代码里在 使用这个名空间时,写全一个类的 完全路径,然而这样的话会比 使用Import指令来导入输入更多的字符, 浪费更多的字节 。指定了名空间后,我们就 可以和MySQL数据库进行数据交互了 。 MySql.Data.MySqlClient这个名空间提供了许多用于 解决MySQL数据的类 。下面是这些类的一个样本: * MySqlConnection: 治理和 MySQL 服务器/数据库的衔接; * MySqlDataAdapter: 一套用于填充DataSet对象和更新MySQL数据库的命令和衔接的 集中; * MySqlDataReader: 让你 可以从一个 MySQL 数据库读取数据 。它是一个单向的数据流; * MySqlCommand: 提供向数据库服务器发送指令的 性能; * MySqlException: 当 产生问题时提供例外 解决 。 我们会 使用其中的一些类去和我们的范例数据库进行数据交互 。 衔接 MySQL 数据库 使用MySQL数据库的第一步是要通过MySQLConnection类和数据库 构建衔接 。通过一个衔接字串,MySqlConnection 将会被实例化成一个示例 。衔接字符串将告诉代码到哪里去找MySQL服务器以及 其余一些选项 。 一个衔接字串告诉代码 使用指定的消费者名和密码去衔接一个名为MySQLTestServer的MySQL服务器,并进入 techrepublic数据库 。我在我的测试机上设定了同意匿名登陆(这样的设定有十分大的安全 漏洞,所以不 提议你在生产服务器上也这么做),所以在范例中将会 使用如下的衔接字串: "server=localhost; database=sitepoint;" 指定了衔接字串后, MySqlConnection 对象的Open 步骤就被调用并 打开衔接 。衔接 构建后,你就 可以给MySQL数据库发送命令或从数据库 获得数据了 。 ASP.NET和MySQL的组合 让我们更 深刻的 探讨一下 联合MySqlConnection类和 其余的类来生成一个MySQL服务器上的数据库列表 。表 B列出了一个 使用C#写的ASP.NET的网页表单 。它 构建了一个衔接,接着给服务器下了一个指令(SHOW DATABASES), 而后通过MySqlReader对象把 后果显示出来 。 用 MySqlCommand 对象向MySQL服务器发送 SHOW DATABASES 命令和直接在 MySQL 治理工具中输入这个命令得 后果是一样的 。唯一的区别是,我们在代码中必须 使用另一个对象来猎取 后果集 。MySqlDataReader 对象在猎取 后果时被实例化(通过 MySqlCommand 类的 ExecuteReader 步骤) 。MySqlDataReader 对象的 GetString 步骤被用于通过ASP.NET的标签操纵来显示 后果集中的数据 。GetString 步骤的指针0指定了显示 后果集的目前行(在while循环中)的第一列数据 。 Mono 揭示 假如你 使用开放源代码的Mono开发平台,例子中的代码 惟独求做小小的 改变就能 畸形的运行 。MySQL的数据接口在 ByteFX.Data.MySqlClient 这个空间名里,而不是Windows上的MySql.Data.MySqlClient空间名 。事实上 MySQL 的数据接口原来是由 ByteFX公司开发的,然而后被MySQL公司收购 。所以假如你 使用Mono的话,你必须这样申明空间名: using ByteFX.Data.MySqlClient; 结语 MySQL 和 .NET 的组合提供了一个 壮大的开发平台 。MySQL在开源社区得到了 壮大的技术 支撑,.NET也通过 Mono 而被开放源代码社区所 承受 。这样的组合提供了一个在Windows,及 其余语言如UNIX或Linux,环境下高度灵便的开发平台 。 |