庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>C#语言>数据库编程>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

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

 作者:马金虎    日期:2005-8-8 10:01:05
字号选择〖 〗/ 双击滚屏 单击停止   
  

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).建立指向数据库的连接

   建立连接要用到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 ) ;
  // 如果出错,输出错误信息
}
}
}

   五.第二个例子--访问远程数据库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://如果出错,输出错误信息
  }
}
}

   六.总结

   上面的二个例子表明,访问远程数据库和访问本地数据库在原理上都是一样的,主要的区别在于打开数据库所需要的数据引擎,在程序设计中表现为打开指向数据库的连接所需设定的引擎参数的不一样。通过上面的二个例子,我想要再访问其他类型的数据库,就显得不是那么困难了。
上一篇:在Visual C#中用ListView显示数据记录    下一篇:没有了  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 马金虎
信息来源: 网络 录入时间: 2005-8-8 10:01:05
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿