我想从另一个datagridview到另一个datagridview搜索特定项目,并获得值的总和 &



希望使用datagridview1作为我的搜索引擎并搜索到datagridview2并将结果显示给datagridview2

它必须是这样的

Datagridview1

datagridview2

假设您已经定义了DataTable(如果您想使用网格数据,您应该这样做),您可以定义并使用以下方法:

c#:

public void SumValues(ref DataTable DataTable1, Int32 ColIdx, string SearchStr)
{
Int32 RetSum;   // change datatype, if needed
foreach (DataRow row in DataTable1.Rows)
{
if (!IsDBNull(row(0)) && !IsNothing(row(ColIdx)) && row(ColIdx) == SearchStr && !IsDBNull(row(ColIdx)) && !IsNothing(row(ColIdx)))
RetSum += row(ColIdx);// add a value from column with index ColIdx, if value of the first column is SearchStr
}
return RetSum;
}

获取特定搜索字符串的所有列的和:

var colSum = SumValues(dt1, 5, "Ref 5");

将总和放入第二个表:

DataTable2("SumOfValues")(5) = colSum;

您可以直接使用DataGridView值:

DataGridView1.Rows(iRow).Cells("SumOfValues").Value = ColSum;

…但我不推荐。您可能会遇到数据类型等问题。


VB。净:

Public Function SumValues(ByRef DataTable1 As DataTable, ColIdx As Int32, SearchStr As String)
Dim RetSum As Int32   ' change datatype, if needed
For Each row As DataRow In DataTable1.Rows
If Not IsDBNull(row(0)) AndAlso Not IsNothing(row(ColIdx)) AndAlso row(ColIdx) = SearchStr AndAlso Not IsDBNull(row(ColIdx)) AndAlso Not IsNothing(row(ColIdx)) Then
RetSum += row(ColIdx)  ' add a value from column with index ColIdx, if value of the first column is SearchStr
End If
Next
Return RetSum
End Function
Dim colSum = SumValues(dt1, 5, "Ref 5")
DataTable2("SumOfValues")(5) = colSum

最新更新