
数据访问是任何应用程序的基础。在本文中,我将说明如何用C#和ADO.NET访问基于SQL Server的数据,以及如何在一个数据绑定的网格控件中显示数据。我用一个简单的C#应用程序为例。
ADO.NET结构
使用ADO.NET不需要维持一个连接。另外,在ADO.NET中,只需用几行代码,你就可以从一个数据源转到另一个数据源。
ADO.NET的核心对象有Command, Connection, DataReader和DataAdapter。它们是.NET中所有数据操作的基础。
核心ADO.NET命名空间
System.Data:是其它命名空间的基础,并补充DataTable, DataColumn, DataView和Constraints对象。
System.Data.Common:定义由各种数据提供者共享的普通对象,包括DataAdapter, DataColumnMapping和DataTableMapping。它为数据提供者所用,包含用于访问数据源的集合。
System.Data.OleDb:定义你用来连接到数据源并修改各种数据源中的数据的对象。它作为普通数据提供者而编写,由包含SQL Server、微软Oracle OLE DB Provider和微软Jet 4.0 Provider驱动器的.NET Framework提供执行。当你需要连接到许多不同的数据源时,就会用到这个命名空间,并且你希望达到比提供者更佳的性能。
System.Data.SqlClient:直接利用SQL Server应用程序接口,提供比更为普通的System.Data.OleDb更佳的性能。这是一个专门为SQL Server 7.0及以上版本建立的提供者命名空间。
System.Data.SqlTypes:专门为SQL Server的数据类型提供类。这个命名空间专为SQL Server而设计,并提供比其它命名空间更佳的性能,但只应用于SQL Server后端。
System.Data.Odbc:处理所有兼容ODBC驱动器。只有.NET Framework 1.1支持这个命名空间,所以安装新版Framework就能获得它。
数据网格实例
给表格dataGrid1增加一个数据网格,如图1所示。为了让列表A中的样本代码能够运行,需要利用下面的命名空间:
using System.Data;
using System.Data.OleDb;
列表A
using System.Data;
using System.Data.OleDb;
private void Form1_Load(object sender, System.EventArgs e)
{
string strConn, strSQL;
strConn = "Provider=Microsoft.JET.OLEDB.4.0;"+"data source=" + "C://DataAccess//Northwind.mdb";strSQL = "SELECT CustomerID, CompanyName, ContactName, ContactTitle, " ;
strSQL = strSQL + "Address, City, Country FROM Customers";
OleDbDataAdapter da = newOleDbDataAdapter(strSQL, strConn);
DataSet ds = newDataSet();
da.Fill(ds, "Customers");
dataGrid1.DataMember = "Customers";
dataGrid1.DataSource=ds;
}
上面的代码定义了两个变量:strConn和strSQL。StrConn使用OLEDB设定利用JET数据库所需的连接字符串,并指向当地计算机的Northwind.mdb数据库位置。StrSQL指定我想在Access数据库(Northwind.mdb)上运行的查询。
接下来,我定义OleDBDataAdapter对象da并将它提交给查询语句(strSQL)和连接字符串(strConn)。注意,我在例子中没有建立一个连接(Connection)对象。
然后,我定义数据组ds,它被用来从网格控件中的用户表(Customers)中获得实际数据。我使数据网格控件dataGrid1的DataMember特性指向到我获得数据的表格,并将控件DataSource的特性设定给DataSetds。(DataMember特性获得/设定DataSource中的一个绑定控件的表格,DataSource特性获得/设定用来安装控件的数据源。)当你运行列表A中的代码时,结果如图2所示。
我显示C://DataAccess//Northwind.mdb数据库中的数据,只看到我在选择语句中选中的栏。如果选择的列数或栏数超过页面的大小,网格控件会自动显示滚动条。
现在你了解了在C#应用程序中使用ADO.NET,以及建立一个数据网格控件显示查询返回数据的基本原理了。
ADO.NET结构
使用ADO.NET不需要维持一个连接。另外,在ADO.NET中,只需用几行代码,你就可以从一个数据源转到另一个数据源。
ADO.NET的核心对象有Command, Connection, DataReader和DataAdapter。它们是.NET中所有数据操作的基础。
核心ADO.NET命名空间
System.Data:是其它命名空间的基础,并补充DataTable, DataColumn, DataView和Constraints对象。
System.Data.Common:定义由各种数据提供者共享的普通对象,包括DataAdapter, DataColumnMapping和DataTableMapping。它为数据提供者所用,包含用于访问数据源的集合。
System.Data.OleDb:定义你用来连接到数据源并修改各种数据源中的数据的对象。它作为普通数据提供者而编写,由包含SQL Server、微软Oracle OLE DB Provider和微软Jet 4.0 Provider驱动器的.NET Framework提供执行。当你需要连接到许多不同的数据源时,就会用到这个命名空间,并且你希望达到比提供者更佳的性能。
System.Data.SqlClient:直接利用SQL Server应用程序接口,提供比更为普通的System.Data.OleDb更佳的性能。这是一个专门为SQL Server 7.0及以上版本建立的提供者命名空间。
System.Data.SqlTypes:专门为SQL Server的数据类型提供类。这个命名空间专为SQL Server而设计,并提供比其它命名空间更佳的性能,但只应用于SQL Server后端。
System.Data.Odbc:处理所有兼容ODBC驱动器。只有.NET Framework 1.1支持这个命名空间,所以安装新版Framework就能获得它。
数据网格实例
给表格dataGrid1增加一个数据网格,如图1所示。为了让列表A中的样本代码能够运行,需要利用下面的命名空间:
![]() |
using System.Data;
using System.Data.OleDb;
列表A
using System.Data;
using System.Data.OleDb;
private void Form1_Load(object sender, System.EventArgs e)
{
string strConn, strSQL;
strConn = "Provider=Microsoft.JET.OLEDB.4.0;"+"data source=" + "C://DataAccess//Northwind.mdb";strSQL = "SELECT CustomerID, CompanyName, ContactName, ContactTitle, " ;
strSQL = strSQL + "Address, City, Country FROM Customers";
OleDbDataAdapter da = newOleDbDataAdapter(strSQL, strConn);
DataSet ds = newDataSet();
da.Fill(ds, "Customers");
dataGrid1.DataMember = "Customers";
dataGrid1.DataSource=ds;
}
上面的代码定义了两个变量:strConn和strSQL。StrConn使用OLEDB设定利用JET数据库所需的连接字符串,并指向当地计算机的Northwind.mdb数据库位置。StrSQL指定我想在Access数据库(Northwind.mdb)上运行的查询。
接下来,我定义OleDBDataAdapter对象da并将它提交给查询语句(strSQL)和连接字符串(strConn)。注意,我在例子中没有建立一个连接(Connection)对象。
然后,我定义数据组ds,它被用来从网格控件中的用户表(Customers)中获得实际数据。我使数据网格控件dataGrid1的DataMember特性指向到我获得数据的表格,并将控件DataSource的特性设定给DataSetds。(DataMember特性获得/设定DataSource中的一个绑定控件的表格,DataSource特性获得/设定用来安装控件的数据源。)当你运行列表A中的代码时,结果如图2所示。
![]() |
我显示C://DataAccess//Northwind.mdb数据库中的数据,只看到我在选择语句中选中的栏。如果选择的列数或栏数超过页面的大小,网格控件会自动显示滚动条。
现在你了解了在C#应用程序中使用ADO.NET,以及建立一个数据网格控件显示查询返回数据的基本原理了。
推荐阅讯
- 《叩开C#之门》系列之对象封装与C#的类
- 利用Visual C#实现Windows管道技术
- 叩开C#之门系列之C#与面向对象编程语言
- 使用C#的反射机制时遇到的问题
- C# 3.0 新特性:扩展方法初探
- 漫谈C#编程中的多态与new关键字
- 对C#中的TreeView添加背景图
- VS2005中使用C#的新特性:可空类型
- C# 3.0新特征之创建和初始化集合对象
- C#+ASP.NET开发基于Web的RSS阅读器
阅读排行
- 1.Visual C#组件技巧之深入ComboBox美容
- 2.用C#实现HTTP协议下的多线程文件传输
- 3.《C语言程序设计》教学的几点体会
- 4.对C#中的TreeView添加背景图
- 5.使用C#开发SmartPhone程序入门
- 6.Visual C#中编写多线程程序之起步
- 7.Visual C#实现HTTP代理服务程序
- 8.用Visual C#打造多页面网页浏览器
- 9.深入理解C#编程中的组件-事件-委托
- 10.利用C#实现标注式消息提示窗口
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏


