gpt4 book ai didi

C#数据表计算

转载 作者:行者123 更新时间:2023-11-30 23:29:25 25 4
gpt4 key购买 nike

我在大型数据表中进行计算。表名是模板化的。

我正在尝试计算从第 4 列到最后一列的总和,并将结果保存到另一个数据表。但是我收到错误,因为它说找不到列“colPnow”

有什么想法吗?

DataView dv2 = new DataView(SP_dt);

for (int i = 0; i < LoadIDcount; i++)
{
string IDnow = LoadID[i, 0];
dv2.RowFilter = String.Format("Load_ID = '{0}'", IDnow);
DataTable temptable = dv2.ToTable();

for (int j = 0; j < 8760; j++)
{
string colPnow = SP_dt.Columns[j*2 + 4].ColumnName.ToString();
double ColP_sum= (double)temptable.Compute("Sum(colPnow)", String.Format("Load_ID = '{0}'", IDnow));
string colQnow = SP_dt.Columns[j*2 + 5].ColumnName.ToString();
double ColQ_sum = (double)temptable.Compute("Sum(colQnow)", String.Format("Load_ID = '{0}'", IDnow));

Load_dt.Rows[i][j * 2 + 2] = ColP_sum;
Load_dt.Rows[i][j * 2 + 3] = ColQ_sum;
}

}

最佳答案

您没有在 Compute 方法中正确格式化您的表达式字符串。使用另一个 String.Format 就可以了。您的 Compute 表达式当前字面上等于 "Sum(colPnow)"。您需要存储在 colPnow 变量中的实际列名字符串。

将这部分代码更改为:

string colPnow = SP_dt.Columns[j*2 + 4].ColumnName.ToString();
double ColP_sum= (double)temptable.Compute(String.Format("Sum([{0}])", colPnow),
String.Format("Load_ID = '{0}'", IDnow));

您的 colQnow 变量也应该这样做。我还建议您阅读如何 String.Format这样您就可以掌握字符串格式化概念。

关于C#数据表计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com