访问表
DataSet有一个Tables属性,它是DataSet中所有DataTable表的集合。Tables的类型是DataTableCollection。它有一个重载索引符,于是可以用两种方式来访问每个DataTable对象。
按表名访问:thisDataSet.Tables["Customers"]
按索引访问(索引是基于0的):thisDataSet.Tables[0],指定DataSet中的第一个Customers。
下面说明怎样访问行
DataTable中有一个Rows属性,它是DataRow对象的集合。它的类型是DataRowCollection,是一个有序列表,按行号来排序。所以:
thisDataSet.Tables["Customers"].Rows[N]
在thisDataSet的DataTable对象Customers中指定行号N-1
访问列:
DataRow对象有一个重载的索引符属性,允许按列名或列号访问各个列,于是:
thisDataSet.Tables["Customers"].Rows[N]["CompanyName"]
在thisDataSet的DataTable对象Customers中指定行号为N-1,列名为CompanyName的列。这里DataRow对象是thisDataSet.Tables["Customers"].Rows[N]
好了,下面有一个例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace DataSetRead1
{
class Program
{
static void Main(string[] args)
{
//创建链接字符串
SqlConnection thisConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;" +
@"AttachDbFilename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\northwnd.mdf';" +
@"Integrated Security=true;User Instance=true;Connection Timeout=30");
//创建DataAdapter对象,用于填充DataSet,这里不用显示打开连接,因为DataAdapter调用Fill()方法时,会自动打开数据库连接
SqlDataAdapter thisDataAdapter = new SqlDataAdapter("select CustomerID,ContactName from Customers", thisConnection);
DataSet thisDataSet = new DataSet();
//使用DataAdapter对象的Fill()方法,填充DataSet对象thisDataSet
thisDataAdapter.Fill(thisDataSet, "Customers");
//循环输出列对象
foreach (DataRow theRow in thisDataSet.Tables["Customers"].Rows)
{
Console.WriteLine("{0}\t{1}", theRow["CustomerID"], theRow["ContactName"]);
}
//关闭连接
thisConnection.Close();
Console.WriteLine("program finished,please press enter/return continue");
Console.ReadLine();
}
}
}
联系客服