sqldataAdapter是建立连接后,一次性将所有数据加载到内存中然后连接就关闭了;、
SQLDataReader是建立连接后,一直保持连接状态,数据都在数据库中,只用当用到哪个数据时才会调用,(相当于建立一个指向数据库的指针)
优劣:sqldataAdapter由于是一次性将所有数据存入到C#内存中,如果存入数据量过大的话,会造成卡顿的现象,适用于小规模的数据库,
SqlDataReader 是一条一条将数据库的内容读取,但是在向硬盘写入时,建议批量的向内存中写入,如果一条就写入一次的话,会造成资源的浪费,加大时间损耗,和减少硬盘寿命
private void Form1_Load(object sender, EventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;//这是链接字符串
SqlConnection conn = new SqlConnection(connStr);
string strSql =@"select StudentId, StudentName, Gender, Birthday, StudentIdNo, Age, PhoneNumber, StudentAddress, ClassId
from Students";
SqlDataAdapter adapter = new SqlDataAdapter(strSql, conn);
//fill填充
DataTable dt = new DataTable();
//把数据库中的数据填充到内存表中
//Fill方法的内部执行过程
//1、先判断SQLconnection是否初始化,如果没有打开连接,那么大仙连接
//2、初始化一个Select ; sql sqlcommand对象
//3、通过cmd对象执行下,然后返回到SQLDataReader对象
//4、读取数据库的数据,然后填充到DataTable中
adapter.Fill(dt);
//把内存表显示到dataGridView上去
this.dgvStudents.DataSource = dt;
conn.Close();
}