【转自】http://hi.baidu.com/yandavid/blog/item/72006031eddb9418eac4af30.html
DataAdapter.Fill 方法 (DataSet)
在 DataSet 中添加或刷新行以匹配使用 DataSet 名称的数据源中的行,并创建一个 DataTable。
SqlConnection con = new SqlConnection();
DataSet DataSet = new DataSet();
SqlDataAdapter DataAdapter = new SqlDataAdapter(Sql, con);
DataAdapter.Fill(DataSet,"DataTable");
DataList.DataSource = DataSet.Tables["DataTable"];
----------------------------------------------------------------------------------------
Fill 方法使用关联的 SelectCommand 属性所指定的 SELECT 语句从数据源中检索行。与 SELECT 语句关联的连接对象必须有效,但不需要将其打开。如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。
您可以在同一个 DataTable 上多次使用 Fill 方法。如果主键存在,则传入行会与已有的匹配行合并。如果主键不存在,则传入行会追加到 DataTable 中。
-------------------------------------------------------------------------------------------------
private static DataSet SelectRows(DataSet dataset,string connectionString,string queryString)
{
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
adapter.Fill(dataset);
return dataset;
}
}
-------------------------------------------------------------------------------------------------
private static void ReadOrderData(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(SQL, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
}
}
finally
{
reader.Close();
}
}
}
若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法
------------------------------------------------------------------------------------------------
SqlConnection 类
表示 SQL Server 数据库的一个打开的连接。
SqlConnection 与 SqlDataAdapter 和 SqlCommand 一起使用,可以在连接 Microsoft SQL Server 数据库时提高性能。
若要确保连接始终关闭,请在 using 块内部打开连接,如下面的代码段所示。这样可确保在代码退出代码块时自动关闭连接。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
}