在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>技术论坛>ASP.net>F0024313 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入

论坛首页
|--web开发
   |--ASP
   |--JSP
   |--ASP.net
   |--DHTML
   |--RUBY
|--软件开发
   |--C++
      |--Code here
   |--JAVA
   |--VB
   |--Delphi
   |--XML
|--.net技术
   |--C#
   |--VB.net
|--Yup开发组
|--站务&投诉
   |--站长专区
|--硬件&网络
|--休息室
|--数据库技术
 进入精华区 我要发言



 DataSet ,DataTable中可不可以用SQL语句再查询?back to ASP.net forum  
作者:samnt,8级分数:0
日期:2002/10/20 9:36:00类别:ASP.net, 技术问题
回复:9次浏览:2420次
状态:无分贴

我已有了一个类型化的数据集myDataSet,其中有4个表。并将其中一个表users前期绑定到myDataGird.
我现在想在数据集的users表中进行查询,形如:
select f1,f2,f3+f4 as f from users
但我找了几个小时,也没找到相应的方法。只好改用数据适配器直接从数据库中查询,这样也只能后期绑定,而且绑定时,只能将数据集中的列一个一个地加到DataGird中。
问题:
(1)DataSet ,DataTable中可不可以用SQL语句再查询?
(2)我在很多页面中用到数据库(几乎所有),用类型化的数据集还是用非类型化的数据集?
(3)我上面的想法是不是哪个地方有问题?
请miles及各位多指教。

reply[F0024313]
 



 
 re [1] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- miles02-10-20 10:28  

adapter的构造函数本身是可以带参数的:
SqlDataAdapter custCMD = new SqlDataAdapter("SELECT * FROM Customers",
"Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");
看到没?就是这样啦。用这个adapter来fill你的dataset。

类型化的数据集的好处,是类型安全。msdn上说他的好处是:“提高代码的可读性”以及“类型化的 DataSet 允许 Visual Studio .NET 代码编辑器自动填写您键入的行”。在性能方面,似乎没有很明显的提高,同时灵活性和开发效率上会有损失。所以,一定要拿捏好分寸。

reply[F0024336]
 



 
 re [2] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- samnt02-10-20 15:22  

我记得ASP中可以从一个recordset对象,“查询”生成一个新的recordset对象。长时间不接触它了印象不是很深。
我上面的意思是:能不能从一个datatable“查询”生成一个新的datatable,或者对dataset也是一样。不必再次去连接数据库。MS不是吹dataset在内存中,查询很快吗。已经将整个表加到内存中,要查询当然到内存中好了。
用数据适配器肯定要连接数据库。我现在就是这样做的,程序也调通了。刚学这个东东,很多地方不是很清楚,请各位指教。

现在的问题是:能不能从已有的dataset中进行查询(各种各样的查询:汇总,求和,条件。。。。)?并将查询结果生成一个datatable.

reply[F0024353]
 



 
 re [3] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- miles02-10-21 17:06  

对于ado.net这一套,我也不是很熟,也是在摸索。

DataAdapter有一个重载的Fill方法,可以用sql语句查询对ds进行填充。不过,这个方法我没试,不过就算成功了,估计也不合要求。你可以试试。

我查了查DataSet的帮助,没有发现requery这类方法。不过,因为它本身的结构,所以可以通过得到column的办法,来对column进行汇总,不会很复杂。

sql本身的作用,是交由dbms来进行结构化查询,得到的,总是一个二维表。这种做法,是关系数据库的产物,可能和dataset本身精神就有冲突。所以,很可能根本不存在requery方法。

reply[F0024588]
 



 
 re [1] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- alexchan02-10-22 04:48  

1、数据集和数据表不能用SQL语句。
2、各有各的优点和缺点。
应该说:数据集是一个容器,装了表和关系,表中又有列。数据适配器的命令才使用SQL语句,之所以使用数据集,我想目的是在断开数据源的情况下操作数据,而且,可以连接到不同的数据源,即可以将Access、Sql、Excel等等来自不同地方的数据作为一个整体进行操作……。
类型化的数据集易于操作(可视化),执行时,速度也快点,而且也一定(?)支持XML。但改动时,须重新编译。
非类型化数据集相对比较灵活,但编程相对困难。

你说的问题,也应该有解决的办法:
1、新建数据集。Dim ds As New [Dataset]
2、用适赔器填充。
  Dim da As New [DataAdapter]
  da.selectCommand=.....

  da.fill(ds)
3、这样你就有了数据集
如果汇总,则建一个数据表,利用编程方式将已有数据集的某表的某些行数据相加,作为新表的某列数据。
至于查询,我记得有Row.Filter过滤器的概念,设置过滤条件,就可以得到你要的数据了。


reply[F0024663]
 



 
 re [2] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- samnt02-10-22 12:28  

两位说得对,我细查了一了vs.net文档,datatable中sql查询的功能可以从columns集合,column对象,datarow对象相应的属性与方法得到。就象excel中工作表worksheet之中的操作。
只是编程的时候工作量比用sql要大多了.

reply[F0024807]
 



 
 re [3] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- miles02-10-24 23:17  

找到了一个方法:

DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"
建立一个这样的column,然后给他一个合适的表达式,就行了。可以用这些聚合函数:

支持下列聚合类型:

Sum(求和)

Avg(平均)

Min(最小值)

Max(最大值)

Count(计数)

StDev(统计标准偏差)

Var(统计方差)。

和sql差不多。

reply[F0025557]
 



 
 re [2] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- miles02-10-24 23:17  

找到了一个方法:

找到了一个方法:

DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"
建立一个这样的column,然后给他一个合适的表达式,就行了。可以用这些聚合函数:

支持下列聚合类型:

Sum(求和)

Avg(平均)

Min(最小值)

Max(最大值)

Count(计数)

StDev(统计标准偏差)

Var(统计方差)。

和sql差不多。

reply[F0025558]
 



 
 re [3] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- VBEND04-04-02 15:00  

Columns("OrderCount").Expression 这一列的所以值是不是都成为Count(OrderID)的值了.

reply[F0115395]
 



 
 re [4] DataSet ,DataTable中可不可以用SQL语句再查询?ASP.net forum  
- miles04-04-22 09:14  

对。应该是对应自己这一行的ID的个数。

reply[F0115782]
 



您的位置
  (c)2000-2021 Yup Studio, all rights reserved.  
166.0156