SqlDataAdapter
表示用于填充DataSet和更新SQL
Server数据库的一组数据命令和一个数据库连接。无法继承此类。
命名空间:System.Data.SqlClient
程序集:System.Data(在system.data.dll中)
SqlDataAdapter是DataSet和SQL Server之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射Fill(它可更改DataSet中的数据以匹配数据源中的数据)和Update(它可更改数据源中的数据以匹配DataSet中的数据)来提供这一桥接。
当SqlDataAdapter填充DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。但是,除非MissingSchemaAction属性设置为AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用FillSchema,让SqlDataAdapter创建DataSet的架构,并在用数据填充它之前就将主键信息包括进去。有关更多信息,请参见向DataSet添加现有约束。
SqlDataAdapter与SqlConnection和SqlCommand一起使用,以便在连接到SQL
Server数据库时提高性能。
SqlDataAdapter还包括SelectCommand、InsertCommand、DeleteCommand、UpdateCommand和TableMappings属性,以便于数据的加载和更新。
当创建SqlDataAdapter的实例时,读/写属性将被设置为初始值。有关这些值的列表,请参见SqlDataAdapter构造函数。
下面的示例使用SqlCommand、SqlDataAdapter和SqlConnection从数据库中选择记录,并用选定的行填充DataSet。然后返回已填充的DataSet。为完成此任务,向该方法传递一个已初始化的DataSet、一个连接字符串和一个查询字符串,后者是一个Transact-SQL SELECT语句。
privatestaticDataSet SelectRows(DataSet dataset,
stringconnectionString,stringqueryString)
{
using(SqlConnection connection = newSqlConnection(connectionString))
{
SqlDataAdapter adapter =newSqlDataAdapter();
adapter.SelectCommand =newSqlCommand(queryString,
connection);
adapter.Fill(dataset);//填充dataset
returndataset;//返回已填充的dataset
}
}
下面的示例创建一个SqlConnection、一个SqlCommand和一个SqlDataReader。该示例读取所有数据,并将其写到控制台。最后,该示例先关闭SqlDataReader,然后关闭SqlConnection。
privatestaticvoidReadOrderData(stringconnectionString)
{
stringqueryString ="SELECT
OrderID, CustomerID FROM dbo.Orders;";//连接字符串
using(SqlConnection connection =newSqlConnection(connectionString))//创建sqlconnection
{
SqlCommand command =newSqlCommand(queryString,
connection);//执行querystring
connection.Open();
SqlDataReader reader =
command.ExecuteReader();
try
{
while(reader.Read())
{
Console.WriteLine(String.Format("{0},
{1}",reader[0], reader[1]));
}
}
finally
{
//
Always call Close when done reading.
reader.Close();
}
}
}