none
一个关于asp.net取值赋值的问题 RRS feed

  • 问题


  • 这两种方法,我经常用的是第一种。
    大家用什么方法呢?

    哪一种方法比较好?
     
    第一种:
    SqlDataReader dr = cmd.ExecuteReader(); While(dr.Read()) { Label1.Text = dr.GetString(1); } dr.Close();

    第二种 

    SqlDataAdapter da = new SqlDataAdapter(cmdstr,conn) da.fill(ds); if(ds.Tables[0].Rows.Count()>0) { Label1.Text = ds.Tables[0].Rows[0][0]; }
    2010年4月5日 4:20

答案

  • 你好。

    一般视情况而定。我也经常用第一种。SqlDataReader 向前只读,不能修改数据,效率高些,功能弱。

    若是需要修改的话,用sqlDataAdapter.





    我们要把爱心传递给更多需要帮助的人。
    博客:http://terryfeng.cnblogs.com
    微博:http://t.sina.com.cn/terryfeng
    个人:http://www.terryfeng.com
    2010年4月5日 4:32
    版主
  • 如果只是读取数据,设计不到表间关系的话当然是第一种效率高了。但是我在许多老程序中看到还是用datatable的多些,可能.net1.1的时候datareader没有提供commandbehaviors.coloseconnection,所以控制起来比较麻烦,现在我写程序一般用reader,实在不行再用dataset.
    2010年4月5日 10:24
  • 第1种 要保持和DB的连接。
    第2种不需要,而且好修改数据。

     

    第一种 建议using()这种方式。

    2010年4月6日 2:48
  • 你好,如果数据只是显示,不更新的话,SqlDataReader比较快些,如果需要Update的话,就必须使用SqlDataAdapter,效率快些,功能强写。

    DataTable table = new DataTable();
    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    table.Load(reader);

    这种方式也比较常用,提供参考!

    2010年4月6日 3:55
    版主

全部回复

  • 你好。

    一般视情况而定。我也经常用第一种。SqlDataReader 向前只读,不能修改数据,效率高些,功能弱。

    若是需要修改的话,用sqlDataAdapter.





    我们要把爱心传递给更多需要帮助的人。
    博客:http://terryfeng.cnblogs.com
    微博:http://t.sina.com.cn/terryfeng
    个人:http://www.terryfeng.com
    2010年4月5日 4:32
    版主
  • 如果只是读取数据,设计不到表间关系的话当然是第一种效率高了。但是我在许多老程序中看到还是用datatable的多些,可能.net1.1的时候datareader没有提供commandbehaviors.coloseconnection,所以控制起来比较麻烦,现在我写程序一般用reader,实在不行再用dataset.
    2010年4月5日 10:24
  • 第1种 要保持和DB的连接。
    第2种不需要,而且好修改数据。

     

    第一种 建议using()这种方式。

    2010年4月6日 2:48
  • 你好,如果数据只是显示,不更新的话,SqlDataReader比较快些,如果需要Update的话,就必须使用SqlDataAdapter,效率快些,功能强写。

    DataTable table = new DataTable();
    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    table.Load(reader);

    这种方式也比较常用,提供参考!

    2010年4月6日 3:55
    版主