私はコードを持っています。3000より大きい数値を入力するまでは問題ありません。結果は負の数値になります。助けてください。
なぜそれが起こったのかわかりません。すでにデバッグしていますか、それともintで宣言していますか?
私が言及する合計値は、 int total= 数量 * コストです。
ところで、数量列への数値以外のユーザータイプを防ぐ方法はありますか?
private void G2_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
try
{
int quantity, cost;
if (int.TryParse(G2.Rows[e.RowIndex].Cells["Quantity"].Value.ToString(), out quantity) && int.TryParse(G2.Rows[e.RowIndex].Cells["Cost2"].Value.ToString(), out cost))
{
int total= quantity * cost;
G2.Rows[e.RowIndex].Cells["Total"].Value = total.ToString();
}
int quan, mini;
quan = Convert.ToInt32(G2.Rows[e.RowIndex].Cells["Quantity"].Value);
mini = Convert.ToInt32(G2.Rows[e.RowIndex].Cells["MinimumOrder2"].Value);
if (quan < mini)
{
MessageBox.Show("QUANTITY must be GREATER or EQUAL to MINIMUM ORDER", "STOP", MessageBoxButtons.OK, MessageBoxIcon.Error);
G2.Rows[e.RowIndex].Cells["Quantity"].Value = "";
G2.Rows[e.RowIndex].Cells["Total"].Value = "";
return;
}
else
{
//Sum the Total Column to TOTAL VALUES text box
decimal TotalValue = 0;
for (int i = 0; i < G2.Rows.Count; i++)
{
if (G2.Rows[i].Cells["Total"].Value == DBNull.Value)
{
return;
}
else
{
TotalValue += Convert.ToDecimal(G2.Rows[i].Cells["Total"].Value);
}
}
totalvalue.Text = TotalValue.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show("Please Enter Only Number");
return;
}
}