积极答复者
一个关于asp.net取值赋值的问题

问题
-
这两种方法,我经常用的是第一种。- 大家用什么方法呢?
哪一种方法比较好?- 第一种:
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]; }
答案
-
你好。
一般视情况而定。我也经常用第一种。SqlDataReader 向前只读,不能修改数据,效率高些,功能弱。
若是需要修改的话,用sqlDataAdapter.
我们要把爱心传递给更多需要帮助的人。
博客:http://terryfeng.cnblogs.com
微博:http://t.sina.com.cn/terryfeng
个人:http://www.terryfeng.com- 已标记为答案 KeFang Chen 2010年4月6日 6:48
-
如果只是读取数据,设计不到表间关系的话当然是第一种效率高了。但是我在许多老程序中看到还是用datatable的多些,可能.net1.1的时候datareader没有提供commandbehaviors.coloseconnection,所以控制起来比较麻烦,现在我写程序一般用reader,实在不行再用dataset.
- 已标记为答案 KeFang Chen 2010年4月6日 6:49
-
第1种 要保持和DB的连接。
第2种不需要,而且好修改数据。第一种 建议using()这种方式。
- 已标记为答案 KeFang Chen 2010年4月6日 6:49
-
你好,如果数据只是显示,不更新的话,SqlDataReader比较快些,如果需要Update的话,就必须使用SqlDataAdapter,效率快些,功能强写。
DataTable table = new DataTable();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
table.Load(reader);这种方式也比较常用,提供参考!
- 已标记为答案 KeFang Chen 2010年4月6日 6:49
全部回复
-
你好。
一般视情况而定。我也经常用第一种。SqlDataReader 向前只读,不能修改数据,效率高些,功能弱。
若是需要修改的话,用sqlDataAdapter.
我们要把爱心传递给更多需要帮助的人。
博客:http://terryfeng.cnblogs.com
微博:http://t.sina.com.cn/terryfeng
个人:http://www.terryfeng.com- 已标记为答案 KeFang Chen 2010年4月6日 6:48
-
如果只是读取数据,设计不到表间关系的话当然是第一种效率高了。但是我在许多老程序中看到还是用datatable的多些,可能.net1.1的时候datareader没有提供commandbehaviors.coloseconnection,所以控制起来比较麻烦,现在我写程序一般用reader,实在不行再用dataset.
- 已标记为答案 KeFang Chen 2010年4月6日 6:49
-
第1种 要保持和DB的连接。
第2种不需要,而且好修改数据。第一种 建议using()这种方式。
- 已标记为答案 KeFang Chen 2010年4月6日 6:49
-
你好,如果数据只是显示,不更新的话,SqlDataReader比较快些,如果需要Update的话,就必须使用SqlDataAdapter,效率快些,功能强写。
DataTable table = new DataTable();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
table.Load(reader);这种方式也比较常用,提供参考!
- 已标记为答案 KeFang Chen 2010年4月6日 6:49