首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

开始使用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"] + ")" );

}

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论