SqlDataAdpater 与SQLDataReader的区别

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();
        }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值