DataSet的功能强大,但是似乎有很多细节做不了在DataReader中,有read()方法,他就像asp里面的rs.eof一样,非常方便控制,问题一:但是在DataSet里面就不知道有没有?DataSet里面的tables,能不能获得某张表里面的记录数呀,就像asp里面的recordcount属性一样,方便得到总记录数问题二:DataSet里面有没有这样对应的方法或属性??如果上面的属性在DataSet里面都没有的话:问题三:能不能将DataSet转换成DataReader对象??急呀,我需要做的是逻辑层接口一律用DataSet返回数据集到WEB层,不能用别的。谢谢!!!
3,用foreach(DataRow dr in DataSet.Tables[0].Rows)就可以遍历整个表
---没有,但是你可以通过DataSet.Tables[0].Rows[i]["ColumnName"]方便的得到某一行某一列的值
---DataSet.Tables[0].Rows.Count就是记录数
3 其实DataSet里面包含很多的表 你可以将DataSet里面的表转换成DataTable然后总数啊取数据啊 其实都很方便的
现在ado.net没什么问题了,程序集也好了。
就是一个基本问题,把头搞大
request.form("val")
request.QueryString("val")
取不到提交的中文数据。真奇怪。
DataSet就是一个内存中的数据库
它有一个重要的属性Tables,该属性是由DataTable对象构成的集合例:
Dim dsObj As DataSet
Dim i As Integer
'dsObj = .....
'i = .....
Dim dtObj As DataTable = dsObj.Tables(i)DataTable就是内存中的表
它有两个重要的属性Rows和Columns
前者是所有行的集合,后者是所有列的集合
要知道表中有多少记录请使用DataTable.Rows.Count例:
Dim dtObj As DataTable
'dtObj = ....
dtObj.Rows.Count访问某一行的语法:DataTable.Rows(i As Integer)
访问某一行的某一列的语法:
DataTable.Rows(i As Integer)(j As Integer)
或者
DataTable.Rows(i As Integer)(FieldName As String)
遍历表的每一行可以使用For Each 或者For例:
Dim i As Integer
Dim dtObj As DataTable = '......
For i = 0 To dtObj.Rows.Count - 1
Operation(dtObj.Rows(i))
Next
你把数据读出来,放到dataset中,然后断开数据库连接,dataset里边的东西都在,你要怎么用都可以,最后你还可以把dataset存回数据库。>>>我需要做的是逻辑层接口一律用DataSet返回数据集到WEB层,
如果我猜的不错的话,你们公司用的应该是强类型数据集。
至于把DataSet/DataTable转换成DataReader的问题,其实并不需要如此,因为实现绑定的控件最后是需要数据源实现IList接口即可,也就是说不管你是DataReader还是DataTable只要实现IList接口就可以了,你完全可以使用IList接口来操作数据源而不需要知道他到底是什么。