请教有关C#winform中DataSet的问题

在SQL Server中我可以用 [总额] AS ([单价]*[数量]), 创建一个列 ,在DataSet中能否实现这样的功能,如果可以该怎么写。
也就是说其中有一列是来自前两列之积所得

DataSet是.Net DAO的数据集,说白了就是内存中一块专门用来存储你读取到的数据的空间,所以只能从数据库操作,将操作的结果填充到DataSet中去。要实现你的那个功能,需要遍历DataSet的DataTable,例如
DataSet ds = GetDataSet();//这里写你自己获取数据的代码
DataTable dt = ds.Tables[0];
DataTable dt = new DataTable();
dt.Columns.Add("Result");
foreach (DataRow row in dt.Rows)
{
int result = Int32.Parse(row["Num1"].ToString()) * Int32.Parse(row["Num1"].ToString());
//num1和num2为两个乘数的列名
row["result"] = result;//赋值给result列的单元格
}追问

DataTable dt = ds.Tables[0];
DataTable dt = new DataTable();
这里是什么意思不懂,
是不是datarow

追答

不好意思,后面的那句没有我,写错了,不用再new了

追问

在请教一下如何在 dataset中指定列插入一列,比如现在又3列,我想在第一列和第二列中插入一列

追答

没有办法,DataTable不支持插入列,如果你要插入一列,那么我建议你再new一个DataTable,然后将列用Add设置好,再把数据从原来的DataTable和计算的数据填入新的Datatable,效率并不会降低,只是占用了部分空间而已

没有办法,DataTable不支持插入列,如果你要插入一列,那么我建议你再new一个DataTable,然后将列用Add设置好,再把数据从原来的DataTable和计算的数据填入新的Datatable,效率并不会降低,只是占用了部分空间而已

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-26
我不知道有么有完全理解你的意思
select [单价]*[数量] as [总额] from 表
然后就可以创建sql的数据操作对象
把查询的结果填充到一个dataset中就行了追问

我指的是在CREATE TABLE建表的时候 [总额] AS ([单价]*[数量]), 不是用查询语句来建立一个临时表

追答

你的意思是在数据库中创建表的时候,有一列的数据,是由另外两列的数据相乘得来?
我想这个可能不行。

追问

在数据库是可以的 我就想问一下在DataSet可以吗

追答

数据库中可以?
create table aaa
(
a int,
b int,
c a+b
)
这个c我希望是a+b的值,怎么实现?
dataset相当于一个分离库,如果真实的库,可以,分离库肯定也行。

追问

c as ([a]*[b])严格的应该是这样

追答

还真可以,高端。学习了。

第2个回答  2011-07-26
除非自己创建DataTable,否则DataTable只有一个计算聚合值得函数

比如
object result = table.Compute("Sum(数量 * 价格)", "EmpID = 5");追问

dataset不是已经包含了datatable吗

追答

我的意思是说这个DataTable的结构是完全由自己创建的

相似回答