大家讨论下从数据库中读取一条数据最高效的解决方法 有一种方法叫做ExecuteScalar()好好看看文档吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ExecuteScalar 的意思就是返回单行单条数据。返回多行数据应该用 ExecuteDataReader返回大量数据用DataSet [ExecuteScalar返回单行单条数据] 这个一般用的比较少吧, 好多都是返回整个一行的记录.例如一个新闻标题列表,点击id为1的新闻标题进去后是具体内容页.其实就是把id为1的那行记录全部读出来.这样的话用哪种比较好呢? 一般非单项数据我都是用的dr打开,读,关闭,ok.开销也比较小... [一般非单项数据我都是用的dr 打开,读,关闭,ok. 开销也比较小...]恩,不过有的时候要视情况而定的,比如说要多次读取的话就不要重复的打开关闭了.第一次的时候打开,然后离开页面关闭. 没做过太多次的,一般一个页面一次读取都不超过3次其它的要么xml,要么直接sql一次解决,要么就是写的控件缓存,一个页面不应该有多个读取的 呵呵,nealbox qq号码发下吧,想和你交流交流. 转自 晓风残月 的Blog-----------------------------------------------速度由快到慢 1. DataReader.GetXXX(<<ColumnIndex>>) 2. DataReader.GetXXX(Dictionary<string, int>[<<ColumnName>>])[Dictionary<string, int>.Add(<<ColumnName>>, DataReader.GetOrdinal(<<ColumnName>>))] 3. DataReader.GetXXX((Int32)Hashtable[<<ColumnName>>]) [Hashtable.Add(<<ColumnName>>, DataReader.GetOrdinal(<<ColumnName>>))] 4. (<<Type>>)DataReader[<<ColumnIndex>>] 5. DataReader.GetXXX(DataReader.GetOrdinal(<<ColumnName>>)) 6. Convert.ToXXX(DataReader[<<ColumnIndex>>]) 7. (<<Type>>)DataReader[<<ColumnName>>] 8. Convert.ToXXX(DataReader[<<ColumnName>>] 说明:1. 按 Index(SELECT 子句中列索引) 读取比按 Name(列名)读取快2. DataReader.GetXXX(<<ColumnIndex>>) 遥遥领先,基于两点: a. 此方法内部直接访问对应的数据库类型,不存在 box/unbox 。 b. 基于索引访问。3. (<<Type>>)DataReader[<<ColumnIndex>>] 比 Convert.ToXXX(DataReader[<<ColumnIndex>>]) 快 a. 前者属于编程语言特有的强制类型转换,对于值类型,存在 unbox 过程。 b. 后者使用的是.NET FCL提供的一组与语言无关的类型转换方法。静态类 Convert 中的类型转换方法,调用源类型实现的 IConvertible 接口进行目标类型的转换。也就是说,只有实现了 IConvertible 接口接口的类型才能用 Convert.ToXXX 进行类型转换。如, Convert.ToInt32(object) sunlovesea,啥也不说了,眼泪哗哗滴 . QUOTE:sunlovesea,啥也不说了,眼泪哗哗滴 . -----------------------------bormir,要不要带个桶接下你的眼泪?!大家都说完了.闪. ExecuteScalar 只返回第一行的第一列数据!DataReader 速度是比dataset快,但是必须要与数据库连接才能正常工作!dataset+cache速度也还可以! 如何获取跳转页面GridView中返回的值 请问有没有哪位高手做过网页收录的程序,可以付费的 Request.QueryString 问题 请问关于WebRequest的如下两种写法的运行结果有何不同 windows 帐户登陆后,不能写文件,帮忙啊? .net中的重点,在线等,关于时间的问题 请问各位大哥,怎么在ASP.NET中访问SQL中的存储过程??谢谢大家!! 300分,求ActiveReports for .net 的注册方法 建立asp.net遇到的问题 在asp.net中如何实现模态窗口 关于ADO.NET的机制问题 DataGrid中如何控制超级连接列的样式
打开,读,关闭,ok.
开销也比较小...
打开,读,关闭,ok.
开销也比较小...]恩,不过有的时候要视情况而定的,比如说要多次读取的话就不要重复的打开关闭了.第一次的时候打开,然后离开页面关闭.
其它的要么xml,要么直接sql一次解决,要么就是写的控件缓存,一个页面不应该有多个读取的
-----------------------------------------------
速度由快到慢
1. DataReader.GetXXX(<<ColumnIndex>>)
2. DataReader.GetXXX(Dictionary<string, int>[<<ColumnName>>])
[Dictionary<string, int>.Add(<<ColumnName>>, DataReader.GetOrdinal(<<ColumnName>>))]
3. DataReader.GetXXX((Int32)Hashtable[<<ColumnName>>])
[Hashtable.Add(<<ColumnName>>, DataReader.GetOrdinal(<<ColumnName>>))]
4. (<<Type>>)DataReader[<<ColumnIndex>>]
5. DataReader.GetXXX(DataReader.GetOrdinal(<<ColumnName>>))
6. Convert.ToXXX(DataReader[<<ColumnIndex>>])
7. (<<Type>>)DataReader[<<ColumnName>>]
8. Convert.ToXXX(DataReader[<<ColumnName>>]
说明:
1. 按 Index(SELECT 子句中列索引) 读取比按 Name(列名)读取快
2. DataReader.GetXXX(<<ColumnIndex>>) 遥遥领先,基于两点:
a. 此方法内部直接访问对应的数据库类型,不存在 box/unbox 。
b. 基于索引访问。
3. (<<Type>>)DataReader[<<ColumnIndex>>] 比 Convert.ToXXX(DataReader[<<ColumnIndex>>]) 快
a. 前者属于编程语言特有的强制类型转换,对于值类型,存在 unbox 过程。
b. 后者使用的是.NET FCL提供的一组与语言无关的类型转换方法。静态类 Convert 中的类型转换方法,调用源类型实现的 IConvertible 接口进行目标类型的转换。也就是说,只有实现了 IConvertible 接口接口的类型才能用 Convert.ToXXX 进行类型转换。如, Convert.ToInt32(object)
-----------------------------
bormir,要不要带个桶接下你的眼泪?!
大家都说完了.闪.