下面的文章有点看不懂,看起来是用的类库,但还是不太懂,请各位指点~!!!!!!!!!!! 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的指向数据库的连接要用以下语句:
|