100高分!如何让一个DataSet中生成两张表并对两个表进行计算!在线等!

问题描述

比如我用两个SQL语句从数据库中得到两个表的结果,如下:stringSQL_1="select*fromtable1whereid='abc'";stringSQL_2="select*fromtable2wherexuehao='2008'";

得到以上两个表之后,我想通过一个DataSet装载这两个表:dt1和dt2;如果两个表中的其它数据不一样,但是有个相同的主键,我如何能够通过程序来对这两个表进行计算?计算好了之后再在一个DataGridView中显示出来。请各位大哥赐教,需要正确的代码!记得我是用c#来实现的哦,用的是vs2005或vs2008都可以;感谢了!

解决方案

解决方案二:
帮你顶!!
解决方案三:
不太明白。两个表中其它数据不一样是指有一个字段的值不一样就算么?
解决方案四:
ds=newdataset();adapter=newadapter();command1.commandtext=SQL_1;adapter.commad=command1;adapter.fill(ds,"T1");command2.commandtext=SQL_2;adapter.commad=command2;adapter.fill(ds,"T2");------------------------------如果结构不一样,不可以联合到一起查询.你这样查到一个DATASET和2个DATASET没什么区别呀,一样都是要一个一个取出来算的.再构造出一个新的dataset或datatable-----DataGridView只能显示一个DATASET.table的内容
解决方案五:
你想怎么样计算?大概说明一下。
解决方案六:
引用3楼HeddaZ的回复:

ds=newdataset();adapter=newadapter();command1.commandtext=SQL_1;adapter.commad=command1;adapter.fill(ds,"T1");command2.commandtext=SQL_2;adapter.commad=command2;adapter.fill(ds,"T2");------------------------------如果结构不一样,不可以联合到一起查询.你这样查到一个DATASET和2个DATASET没什么区别呀,一样都是要一个一个取出来算的.再构造出一个新的dataset或datatab…

他的意思是把两个TABLE的不一样的数据找出来,重组到一个VIEW里。并非作用到SQL里吧?那得把查出的T1的每条数据遍历到T2中查询,通过主键挑出来,插入到一个新的TABLE
解决方案七:
看有沒有什么啟示,主表增加一個用來計算從表匯總值的字段,其它相關計算也可以效仿,至于你說的比較就不很清楚什么意思usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;namespaceAddAggregateChildColumnDataTable{classProgram{staticvoidMain(string[]args){stringsqlConnectString="DataSource=(local);"+"Integratedsecurity=SSPI;InitialCatalog=AdventureWorks;";stringsqlSelect=@"SELECT*FROMSales.SalesOrderHeader;SELECT*FROMSales.SalesOrderDetail;";DataSetds=newDataSet();//FilltheDataSetSqlDataAdapterda=newSqlDataAdapter(sqlSelect,sqlConnectString);da.TableMappings.Add("Table","SalesOrderHeader");da.TableMappings.Add("Table1","SalesOrderDetail");da.Fill(ds);//RelatetheHeaderandOrdertablesintheDataSetDataRelationdr=newDataRelation("SalesOrderHeader_SalesOrderDetail",ds.Tables["SalesOrderHeader"].Columns["SalesOrderID"],ds.Tables["SalesOrderDetail"].Columns["SalesOrderID"]);ds.Relations.Add(dr);//AddacolumntotheSalesOrderHeadertablesummingall//LineTotalvaluesinSalesOrderDetailds.Tables["SalesOrderHeader"].Columns.Add("SumDetailLineTotal",typeof(decimal),"SUM(Child.LineTotal)");//Outputfieldsfromfirstthreeheaderrowswithdetailfor(inti=0;i<3;i++){DataRowrowHeader=ds.Tables["SalesOrderHeader"].Rows[i];Console.WriteLine("HEADER:OrderID={0},CustomerID={1},"+"SumDetailLineTotal={2}",rowHeader["SalesOrderID"],rowHeader["CustomerID"],rowHeader["SumDetailLineTotal"]);foreach(DataRowrowDetailinrowHeader.GetChildRows(dr)){Console.WriteLine("tDETAIL:OrderID={0},DetailID={1},"+"LineTotal={2}",rowDetail["SalesOrderID"],rowDetail["SalesOrderDetailID"],rowDetail["LineTotal"]);}}Console.WriteLine("nPressanykeytocontinue.");Console.ReadKey();}}}
解决方案八:
就是3楼说的那样,我现在两个表已经填充了到了一个dataset里面去了,如何对已经填充到dataset里面去的几个表进行二次计算,再返回一个表,然后把这个表显示在DataGridView里面。不晓得具体怎么实现。也可以是每一个表都填充一个dataset,然后对两个或多个dataset中的table进行二次计算;我的意思是想这样的,我本来可以在数据库中通过SQL语句来实现这个功能,但是因为数据库中一个表有上百万条记录,我如果在数据库中进行计算的法,感觉速度很慢,我如果只是提取其中的某些数据,通过程序来进行计算,速度肯定快些你们懂我的意思了没有?我现在就是不知道方法来实现;
解决方案九:
DataTabledt1=DataSet.Tables[0];DataTabledt2=DataSet.Tables[1];stringprimaryKey=dt1["yourPK"].ToString();//...计算...

解决方案十:
就是3楼说的那样,我现在两个表已经填充了到了一个dataset里面去了,如何对已经填充到dataset里面去的几个表进行二次计算,再返回一个表,然后把这个表显示在DataGridView里面。==这个二次计算要做什么工作?两个表的字段能对上么?
解决方案十一:
可以对上
解决方案十二:
DataRelationrelation=newDataRelation("relationName",tb1.Column[i],tb2.Column[j]);dataSet.Relations.Add(relation);//dataSet为DataSet//显示时绑定tb1,每次绑定时取到tb1里的DataRowDataRow[]tb2Rows=tb1Row.policy.GetChildRows("relationName")//有了tb1里的tb1Row和tb2关联的rows该怎么计算就怎么计算啦

解决方案十三:
关注+学习!!
解决方案十四:
这种需求最好通过sql语句实现,哪怕用存储过程也行。
解决方案十五:
我就是不想通过存储过程来完成,想通过程序来实现这个功能。没有好的方法吗?我想应该是可以的,但是就是不知道从何下手!
解决方案:很经典的问题,可以使用ADO.NET中的表达式http://www.microsoft.com/china/MSDN/library/data/dataAccess/ADONETEXP.mspx其他http://topic.csdn.net/u/20080408/22/5c0909df-1502-4ebe-9f97-f9398372affa.html
解决方案:关填充的问题,有需要可以参考,http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspxhttp://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx

时间: 2024-10-29 23:00:57

100高分!如何让一个DataSet中生成两张表并对两个表进行计算!在线等!的相关文章

如何得到一个dataset中某一个表的字段的名称和该数据的数据类型的长度

问题描述 如何得到一个dataset中某一个表的字段的名称和该数据的数据类型的长度(因为sizeof())不能用) 解决方案 解决方案二:这个简单啊,网上搜一下就得到答案了.

mfc-怎么样在一个对话框中点击一个按钮,在另一个对话框中显示一张已知路径的图片

问题描述 怎么样在一个对话框中点击一个按钮,在另一个对话框中显示一张已知路径的图片 我在做一个员工管理的MFC程序.现在想实现一个功能,就是在一个对话框中的list control控件中选择一条员工信息,然后点击一下"显示全部信息"按钮,弹出来一个对话框,这个对话框中picture控件中会有相应的员工的照片显示出来.现在对话框能显示了,但是不知道怎么在对话框中的picture控件中显示相应的图片.求问这个功能怎么实现啊? 解决方案 在一个对话框中显示另一个对话框 解决方案二: http

如何将一个项目中的功能加到另一个项目中,实现一次操作运行两个项目的功能

问题描述 如题,有两个项目分别实现两个功能,如何将一个项目中的功能加到另一个项目中,实现一次操作运行两个项目的功能 解决方案 解决方案二:第三个项目(解决方案),它应用了两个项目,调用(系统集成)了两个项目.这种事情,自己多想想.不要怕出错.你若没有动手动手能力,你就总想着哄别人给你一个源代码.你若有动手能力,你就不怕出错,而用你自己的实践来提问(而不是在刚刚空白的状态下提问).解决方案三:新建一个解决方案,将这两个项目加至同一个解决方案,然后在你的主项目中引用其他项目,就可以直接调用其他项目的

如何把已经属于一个DataSet的DataTable加到另一个DataSet中解决方法

解决方案一.参考.:http://blog.163.com/zhug_1970/blog/static/42983053201057525519/ 1.先Clone你的DataTable     DataTable   rtnTbl   =     aDt.Clone()   ; 2.复制数据     //复制     foreach(   DataRow   r   in   aDt)     {        object   []arr   =   r.ItemArray   ;     

如何利用RowFilter 属性从一个dataset中创建两个不同的datagrid

datagrid|创建 WomenNameAgeGenderStaci 22 F Niki 21 F Candy 44 F Erica 32 F Andrea 23 F Susan 36 F MenNameAgeGenderAlex 24 M John 39 M Chad 23 M Greg 48 M <%@ Page Language="VB" %><%@ Import Namespace="System.Data" %><%@ Im

frame-在一个Frame中点击按钮,如何在另一个Frame中显示出来?

问题描述 在一个Frame中点击按钮,如何在另一个Frame中显示出来? 如图,我需要在buttomFrame中点击"在线客服"的< a >标签按钮,然后在rightFrame中把小窗口显示出来.小窗口是直接置于rightFrame文字上方的样子. 以下是frameset的代码部分: <frameset rows="104,*,27" cols="*" frameborder="1" border="

android-一个Activity实时监听另一个Activity中参数的变化

问题描述 一个Activity实时监听另一个Activity中参数的变化 假如我有两个Activity:Activity(A)和Activity(B) Activity(A)中有一个按钮,有两种状态 开始 和 暂停 用户可以点击按钮控制 开始 或 暂停 当 开始 时 Activity(B)要进行一种操作,当 暂停 时,Activity(B)要进行另一种操作. 请问如何让Activity(B)即时获取Activity(A)中按钮的状态呢? 解决方案 android中如何添加一个监听按钮,点击之后从

resultmap-MyBatis怎么在程序不变的情况下,把两个字段映射到一个字段中。

问题描述 MyBatis怎么在程序不变的情况下,把两个字段映射到一个字段中. 比如有firstName和lastName两个字段,怎么将两个字段映射到一个字段中,在resultMap中怎么实现.或者还有什么其它方式,急急急 解决方案 说清楚是你的对象这边是两个字段还是数据库那里是两个字段. 解决方案二: select firstName||lastName as name from xxx; resultMap里用name跟实体里面的属性对应 解决方案三: 没必要,你可以加上一个get Stri

javascript随机将第一个dom中的图片添加到第二个div中示例_javascript技巧

javascript随机将第一个dom中的图片添加到第二个div中去,此代码的是一个简单的例子,将第一个div中的五张图片中,提取随机两张显示到第二个div中. 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=