开始使用ADO.NET
Getting Started with ADO.NET
理论已经讲得够多了。让我们编写一些代码,看看实际中是如何工作的。使用ADO.NET可能比较复杂,但对于许多查询来说,这个模型出人意料的简单。
本例中,我们将创建一个简单的Windows窗体,它有一个简单的列表框叫lbCustomers。我们可以用Northwind数据库中Customers表的一些数据填充这个列表框。
从创建DataAdapter对象开始:
SqlDataAdapter DataAdapter =
new SqlDataAdapter(
commandString, connectionString);
两个参数是commandString和connectionString。commandString是生成DataSet中所需数据的SQL语句:
string commandString =
"Select CompanyName, ContactName from Customers";
connectionString是与数据库连接所需的字符串。我用来做开发的机器上运行的是SQL Server,我拥有与数据库的可信连接:
string connectionString =
"server=localhost; trusted_connection=true; database=northwind";
如果没有安装SQL Server,选择Microsoft .NET Framework SDK程序组中的Quickstart Tutorials(安装Visual Studio 或者.NET Framework SDK时肯定已经选择了这一选项)。会出现一个网页,让你选择安装Microsoft SQL Server Desktop Engine (MSDE)。安装了MSDE之后,启动QuickStarts(将创建Northwind示例数据库)。要使用该数据库,需要如下连接字符串:
"server=(local)\\NetSDK; Trusted_Connection=yes; database=northwind"
有了DataAdapter,就可以创建DataSet,并用从 SQL select语句获得的数据填入其中:
DataSet DataSet = new DataSet();
DataAdapter.Fill(DataSet,"Customers");
行了,有了DataSet,现在可以查询、操作或管理数据了。DataSet有一个表集合,我们只对第一个表感兴趣,因为只检索过一个表:
DataTable dataTable = DataSet.Tables[0];
可以将已用SQL语句获取的行提取出来,并把数据加入列表框:
foreach (DataRow dataRow in dataTable.Rows)
{
lbCustomers.Items.Add(
dataRow["CompanyName"] +
" (" + dataRow["ContactName"] + ")" );
}
列表框用来自数据库的表中的公司名称和联系人名称,按照传入的SQL语句填充。示例14-1是本例的完整代码。
示例14-1:使用ADO.NET
#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;
#endregion
namespace WorkingWithADONET
{
partial class ADONetForm1 : Form
{
public ADONetForm1( )
示例14-1:使用ADO.NET(续例)
{
InitializeComponent( );
// 与本地服务器Northwind数据库连接
string connectionString = "server=localhost;" +
"Trusted_Connection=yes; database=northwind";
// 从Customers表获取记录
string commandString =
"Select CompanyName, ContactName from Customers";
// 创建DataSet命令对象
// 和DataSet
SqlDataAdapter DataAdapter =
new SqlDataAdapter(
commandString, connectionString );
DataSet DataSet = new DataSet( );
// 填充DataSet对象
DataAdapter.Fill( DataSet, "Customers" );
// 从DataSet获取一个表
DataTable dataTable = DataSet.Tables[0];
// 对于表中的每一列,显示信息
foreach ( DataRow dataRow in dataTable.Rows )
{
lbCustomers.Items.Add(
dataRow["CompanyName"] +
" (" + dataRow["ContactName"] + ")" );
}
}
}
}
用不多的代码,我们从数据库中提取了一些数据,并将其显示在列表框中,如图14-1所示。
以下任务只用了8行代码:
创建连接字符串:
string connectionString = "server=localhost;" +
"Trusted_Connection=yes; database=northwind";
创建select语句字符串:
string commandString =
"Select CompanyName, ContactName from Customers";

图14-1:示例14-1的输出
创建DataAdapter并传入选择字符串和连接字符串:
SqlDataAdapter DataAdapter =
new SqlDataAdapter(
commandString, connectionString);
创建一个新的DataSet对象:
DataSet DataSet = new DataSet( );
用DataAdapter将Customers表中的数据填入DataSet:
DataAdapter.Fill(DataSet,"Customers");
从DataSet中提取DataTable:
DataTable dataTable = DataSet.Tables[0];
使用DataTable填充列表框:
foreach (DataRow dataRow in dataTable.Rows)
{
lbCustomers.Items.Add(
dataRow["CompanyName"] +
" (" + dataRow["ContactName"] + ")" );
}






