在Visual C#中访问不同数据库

2016-02-19 17:11 1 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是在Visual C#中访问不同数据库,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

  Visual C#作是微软极力推荐的下一代程序开发语言,他有一个非常重要伴侣--.Net Framework SDK,在他的里面封装了许多Class Library (类库)。Visual C#要实现很多拓展功能,就必须借助于他的这个伴侣。在Visual C#中对数据库的处理是其功能的一个重要表现。Visual C#在进行数据库处理的时候,经常用到.Net FrameWork SDK中的一个名称空间 是 System.Data.Oledb。在这个名称空间中封装了许多和数据库处理的相关Class(类)。本文就是通过二个具体的实例来说明在Visual C#如何实现对数据库的访问。

  一.程序设计和运行环境是:

  微软公司视窗2000 专业版,.Net FrameWork SDK BETA 2 ,Microsoft Access Data Component 2.6 ( MADC2.6 )

  二. 程序主要作用

  本文中主要有二个源代码,其一说明如何在Visual C#中对访问数据库,本地数据库选择的是微软公司的Acess 2000;其二说明如何在Visual C#中对访问数据库,远程数据库选择的是微软公司的产品--SQL Server 7.0。

  三.例子设计过程中的思路

  (1).首先要导入名称空间

  (2).建立指向数据库的数据连接

  (3).在此数据连接上,建立一个SQL语句,用来返回所需用的数据集

  (4).打开数据连接,执行SQL语句,返回所需的数据集

  (5).关闭数据集,关闭数据连接

  四.第一个例子first.cs -- 打开本地数据库(my.mdb )

  程序中的重要步骤:

  (1).导入名称空间空间

  在本例子中要导入三个名称空间,分别是:System、System.Data.OleDb、System.Windows.Forms。导入System名称空间是因为程序中用到其中的Console类。导入System.Windows.Forms名称空间是因为程序中用到其中的Application类。

  (2).建立指向数据库的连接

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  建立连接要用到System.Data.OleDb名称空间中的类--OleDbConnection。通过以下语句可以完成对本地数据库的连接工作:

  

string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +           Application.StartupPath + "my.mdb" ;OleDbConnection aConnection = new OleDbConnection ( strConnect ) ; 

  其中第一句中的"Provider"是表明数据库引擎的类型。"Data Source"是指向的数据库名称。

  (3).在此数据连接上,建立一个SQL语句,用来返回所需用的数据集

  建立SQL语句来得到数据集,要用到System.Data.OleDb名称空间中的类--OleDbCommand。通过以下语句可完成此项工作。

  

OleDbConnection aConnection = new OleDbConnection ( strConnect ) ; 

  (4). 打开数据连接,执行SQL语句,返回所需的数据集

  要完成此项操作,需用到OleDbConnection类中的Open方法,和OleDbCommand类中的ExecuteReader方法。返回的数据集要用的System.Data.OleDb名称空间中的另一个类--OleDbDataReader。这个类就像是一个容器,提供要访问的数据集。主要语句如下:

  

aConnection.Open ( ) ;OleDbDataReader aReader = aCommand.ExecuteReader ( ) ; 

  (5).关闭数据集,关闭数据连接

  要关闭数据集要用到OleDbDataReader类中的Close方法,要关闭数据连接要用到OleDbConnection类中的Close方法。注意,最好先关闭返回的数据集,再关闭指向数据库的连接。具体程序如下:

  

aReader.Close ( ) ;aConnection.Close ( ) ; 

  (6).在程序中,还设计了一个例外处理。在出现例外的时候,显示错误信息。错误信息的捕获是通过System.Data.OleDb名称空间中的类--OleDbException来实现的。具体如下:

  

try{  .  }catch ( OleDbException e ){  Console.WriteLine ( "错误类型:", e.Errors[0].Message ) ;}first.cs 的程序源代码如下:using System ;using System.Data.OleDb ;using System.Windows.Forms ;// 导入程序中用的的所有名称空间class OleDbTest {public static void Main ( ){  string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +             Application.StartupPath + "my.mdb" ;  OleDbConnection aConnection = new OleDbConnection ( strConnect ) ;  // 建立指向数据库的连接  OleDbCommand aCommand = new OleDbCommand ( "select * from Persons" ,                         aConnection ) ;  // 设计所需要返回的数据集的内容  try {   aConnection.Open ( ) ;   // 打开指向数据库连接   OleDbDataReader aReader = aCommand.ExecuteReader ( ) ;   // 返回需要的数据集内容   Console.WriteLine ( "以下就是打开后的数据集的一个字段的所有内容!" ) ;   while ( aReader.Read ( ) ) {    Console.WriteLine ( aReader.GetString (0) ) ;   }  // 屏幕输出数据集的第一个字段的所有内容,如果要第二个字段把"0"改为"1"  aReader.Close ( ) ;  // 关闭数据集  aConnection.Close ( ) ;  // 关闭指向数据库的连接}catch ( OleDbException e ){  Console.WriteLine ( "错误类型:", e.Errors[0].Message ) ;  // 如果出错,输出错误信息}}} 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  五.第二个例子--访问远程数据库Sql server 7.0

  访问Sql server 7.0的程序代码和访问Acess 2000的程序代码的主要区别有二点:

  1. 选用的数据库引擎不一样。访问Sql server 7.0的指向数据库的连接要用以下语句:

  

string strConnect = " Provider=SQLOLEDB.1 ; Persist Security Info=False ; User ID = sa ; Initial Catalog=xsgl ; Data Source = czdy1 " ; 

  其中"Initial Catalog"是要选用的数据库名称。"Data Source"是提供数据库服务的服务器名称。

  2. 不要在导入System..Windows.Forms名称空间

  这是因为访问的是远程数据库,不需要用到Application类了。

  访问远程数据库的程序源代码--second.cs

  

using System ;using System.Data.OleDb ;// 导入程序中用的的所有名称空间class OleDbTest {public static void Main ( ){  string strConnect = " Provider=SQLOLEDB.1 ; Persist Security Info=False      ; User ID = sa ; Initial Catalog=xsgl ; Data Source = czdy1 " ;  OleDbConnection aConnection = new OleDbConnection ( strConnect ) ;  // 建立指向数据库的连接  OleDbCommand aCommand = new OleDbCommand ( "select * from xsk" ,             aConnection ) ;  // 设计所需要返回的数据集的内容  try {   aConnection.Open ( ) ;   // 打开指向数据库连接   OleDbDataReader aReader = aCommand.ExecuteReader ( ) ;   // 返回需要的数据集内容   Console.WriteLine ( "以下就是打开后的数据集的一个字段的所有内容!" ) ;   while ( aReader.Read ( ) ) {    Console.WriteLine ( aReader.GetString (0) ) ;   }  // 屏幕输出数据集的第一个字段的所有内容,如果要第二个字段把"0"改为"1"  aReader.Close ( ) ;  // 关闭数据集  aConnection.Close ( ) ;  // 关闭指向数据库的连接  }  catch ( OleDbException e )  {   Console.WriteLine ( "错误类型:", e.Errors[0].Message ) ;   file://如果出错,输出错误信息  }}} 

  六.总结

  上面的二个例子表明,访问远程数据库和访问本地数据库在原理上都是一样的,主要的区别在于打开数据库所需要的数据引擎,在程序设计中表现为打开指向数据库的连接所需设定的引擎参数的不一样。通过上面的二个例子,我想要再访问其他类型的数据库,就显得不是那么困难了。

来源:https://www.tulaoshi.com/n/20160219/1614458.html

延伸阅读
        由于某些原因,软件依赖的数据库软件会出现更换!如果数据库的打开和操作代码都出现在每个页里,那么更换数据库软件后带来的代码修改将相当麻烦。所以把数据库操作代码写成一个类,将不会出现上述情况并可以减少代码量。以下是源码 using System; using System.Data; using System.Data.SqlClient...
精华网络内容 :http://www.qqread.com/network/ %@   Page   language="c#"   Debug="true"   Codebehind="Image2Access.aspx.cs"   AutoEventWireup="false"   Inherits="eMeng.Exam.Image2Access"   %     !DOCTYPE   HTML   P...
记得以前要动态的创建Access数据库的mdb文件都是采用DAO,用VC开发,一大堆的API,很是麻烦。现在好像也鲜有人提起DAO。其实动态的创建mdb数据的最简单的方法还是ADOX。 用ADOX创建access数据库方法很简单,只需要new一个Catalog对象,然后调用它的Create方法就可以了,如下: ADOX.Catalog catalog = new Catalog(); catalog.Create(...
什么是数据库事务 数据库事务是指作为单个逻辑工作单元执行的一系列操作。 牐犐柘胪上购物的一次交易,其付款过程至少包括以下几步数据库操作: 更新客户所购商品的库存信息 保存客户付款信息--可能包括与银行系统的交互 生成订单并且保存到数据库中 更新用户相关信息,例如购物数量等等 牐犝常的...
热衷于C#语言的人会喜欢上Visual C# 2005。Visual Studio 2005为Visual C# 2005带来了大量令人兴奋的新功能,例如泛型、迭代器、局部类和匿名方法等。虽然泛型是人们最常谈到的也是预期的功能,尤其是在熟悉模板的C++开发人员中间,但是其他的新功能同样是对Microsoft .NET开发宝库的重要补充。与C#的第一个版本相比,这些功能和语言附加将会提...

经验教程

71

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部