diff --git a/WindowsFormsApp6/Form3.cs b/WindowsFormsApp6/Form3.cs index cdfebd4..d364867 100644 --- a/WindowsFormsApp6/Form3.cs +++ b/WindowsFormsApp6/Form3.cs @@ -1086,12 +1086,12 @@ namespace WindowsFormsApp6 DataRow rateRow = sampleDataTable.Rows[2]; DataRow stdRow = sampleDataTable.Rows[4]; - // 清空标准偏差行的所有数据(初始化为0.0,显示时会根据是否有测试数据决定是否显示) + // 清空标准偏差行的所有数据(设置为DBNull,不显示) for (int i = 1; i <= currentSampleCount; i++) { - stdRow[$"试样{i}_1"] = 0.0; - stdRow[$"试样{i}_2"] = 0.0; - stdRow[$"试样{i}_3"] = 0.0; + stdRow[$"试样{i}_1"] = DBNull.Value; + stdRow[$"试样{i}_2"] = DBNull.Value; + stdRow[$"试样{i}_3"] = DBNull.Value; } // 计算每组(5个试样)的标准偏差 @@ -1133,17 +1133,17 @@ namespace WindowsFormsApp6 stdDev = Math.Sqrt(sumOfSquares / (groupAverages.Count - 1)); } - // 只在该组第1个试样的第1列显示标准偏差,其他列保持DBNull + // 只在该组第1个试样的第1列显示标准偏差,其他列保持DBNull(不显示) stdRow[$"试样{startSample}_1"] = Math.Round(stdDev, 2); } } else { // 横向布局 - // 清空所有行的标准偏差列(初始化为0.0,显示时会根据是否有测试数据决定是否显示) + // 清空所有行的标准偏差列(设置为DBNull,不显示) foreach (DataRow row in sampleDataTable.Rows) { - row[ROW_STD_DEVIATION] = 0.0; + row[ROW_STD_DEVIATION] = DBNull.Value; } // 计算每组(5个试样)的标准偏差 @@ -1188,25 +1188,12 @@ namespace WindowsFormsApp6 stdDev = Math.Sqrt(sumOfSquares / (groupAverages.Count - 1)); } - // 只在该组第1个试样的第1次测试行显示标准偏差,其他行保持0.0 + // 只在该组第1个试样的第1次测试行显示标准偏差,其他行保持DBNull(不显示) int targetRowIndex = (startSample - 1) * 3; // 第1次测试的行索引 if (targetRowIndex < sampleDataTable.Rows.Count) { sampleDataTable.Rows[targetRowIndex][ROW_STD_DEVIATION] = Math.Round(stdDev, 2); } - - // 其他行保持0.0(不显示) - for (int i = startSample; i <= endSample; i++) - { - for (int j = 1; j <= 3; j++) - { - int rowIdx = (i - 1) * 3 + (j - 1); - if (rowIdx != targetRowIndex && rowIdx < sampleDataTable.Rows.Count) - { - sampleDataTable.Rows[rowIdx][ROW_STD_DEVIATION] = 0.0; - } - } - } } } }