A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

陈康

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 陈康 初级黑马   /  2012-8-3 18:32  /  1262 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ITExpert 于 2012-8-3 23:13 编辑

我知道,连接数据库有两种方式,请问,这两者怎么连接?这两者又有何区别?哦,对了,还请大侠代码示例!!!!

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

2 个回复

倒序浏览
创建SqlConnection是建立数据库连接,如果多次创建即会非常消耗时间。它使用后必须用Close()释放,否即会一直占用宝贵的带宽资源。
创建SqlDataAdapter同样也是会有创建数据库连接的操作,但是它优化了这个连接的过程(牺牲更多的内存换取更快的速度),创建一次后可以多次使用而不会一直占用宝贵的带宽资源.

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
1,方法1:使用了DataAdapter和DataSet,是离线内存数据集 ;
    SqlConnection   sqlcon   =   new   SqlConnection( "server=.\\sqlexpress;database=db;AttachDbFilename=C:\\MyDB.mdf;Trusted_Connection=Yes ");
    sqlcon.Open();
    SqlDataAdapter   sqlda   =   new   SqlDataAdapter( "select   sname,ssex,snumber,sclass   from   student ",sqlcon);
    sqlda.Fill(ds, "pp ");
    dataGridView1.DataSource=ds.Tables[0];
2,方法1使用场景是具有关系的多个表的操作,少量纪录的更改操作等;
3,方法2:使用了DataReader,DataReader是只进只读的数据集;
     SqlConnection   sqlcon   =   new   SqlConnection( "server=.\\sqlexpress;database=db;AttachDbFilename=C:\\MyDB.mdf;Trusted_Connection=Yes ");
     sqlcon.Open();
     SqlCommand   sqlcmd   =   new   SqlCommand( "select   sname,ssex,snumber,sclass   from   student ",sqlcon);
     DataReader   Rd;        
     Rd   =   cmd.ExecuteReader();  
     for(int   i;i <=Rd.Legth();i++)
     {                  
      dataGridView1.DataSource=Rd.GetString(i);
     }
4,方法2使用场景是一次性读取大量不必更改的纪录。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马