DATASET 和 DATAREADER 都是 ADO.NET 中用来处理数据的对象。
- DATASET
DATASET 是一个内存中的数据缓存,可以理解为一个内存中的数据库,可以通过 SQL 语句和其他查询方式从数据库中获取数据,并将数据放在 DATASET 中。
DATASET 可以存储多张数据表,它存储的数据是一个不断变化的数据集,支持对数据集的增删改查。
示例:
using System.Data.SqlClient;
string connStr = "Data Source=(local);Initial Catalog=TestDB; User ID=sa;Password=123456";
SqlConnection conn = new SqlConnection(connStr);
// 创建DataAdapter对象,通过 SELECT 语句从数据库中查询数据
string strSql = "SELECT * FROM Students";
SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
// 创建DATASET对象
DataSet ds = new DataSet();
// 将DataAdapter对象中的数据填充到DATASET对象中
da.Fill(ds);
//输出第一张表的第一行第一列数据
Console.WriteLine(ds.Tables[0].Rows[0][0]);
- DATAREADER
DATAREADER 是用来从数据库中读取数据的对象,是一种轻量级的读取数据的方式,它不会像 DATASET 一样将数据全部读取到内存中进行操作,而是采用流式处理方式,一行一行的读取数据。因此,DATAREADER 的数据访问效率比 DATASET 更高。
示例:
using System.Data.SqlClient;
string connStr = "Data Source=(local);Initial Catalog=TestDB; User ID=sa;Password=123456";
SqlConnection conn = new SqlConnection(connStr);
// 创建Command对象,通过 SELECT 语句从数据库中查询数据
string strSql = "SELECT * FROM Students";
SqlCommand cmd = new SqlCommand(strSql, conn);
// 打开数据库连接
conn.Open();
// 创建DATAREADER对象
SqlDataReader dr = cmd.ExecuteReader();
// 读取数据,遍历DATAREADER对象
while (dr.Read())
{
Console.WriteLine(dr["StuName"].ToString() + " " + dr["Age"].ToString());
}
// 关闭DATAREADER对象和数据库连接
dr.Close();
conn.Close();
总的来说,DATASET 是一个完整的数据集,可以离线使用,适用于小数据量,DATAREADER 是一种在线的处理流式数据的方式,适用于大数据量。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:DATASET 与 DATAREADER对象有什么区别 - Python技术站