我有一个DataTable,其中包含一个名为x value
我想返回该列的和值。
列中始终有一个数字(因此无需担心空值/空值)。
我的代码:
int x = 0;
foreach (DataRow dr in SqlCon.ds.Tables[3].Rows)
{
foreach (DataColumn dc in SqlCon.ds.Tables[3].Columns)
{
if (dc.ColumnName == "x value")
{
//calc value
}
}
}
非常感谢,
PS。已经看了SO但是找不到副本(我假设它是关于但是它是星期一早上,我的谷歌技能不是最好的!)
答案 0 :(得分:1)
你需要循环每一行,这是肯定的。但是,您可以获取列索引一次,以避免对列进行不必要的循环:
int sum = 0;
DataSet ds = new DataSet();
DataTable dt = ds.Tables[3];
int columnIndex = dt.Columns["x column"].Ordinal;
foreach (DataRow dr in dt.Rows)
{
sum += Convert.ToInt32(dr[columnIndex]);
}
答案 1 :(得分:1)
object sumOfX = SqlCon.ds.Tables[3].Compute("Sum(x value)", null);
然后转换为适当的数字类型。
注意:在编写代码方面,这可能是高效,但如果你真的需要挤压最后一个时钟周期,那么在性能方面可能会有更高效的方法......但话又说回来,使用DataTable和C#可能是错误的选择。