私はデータグリッドビューの列の合計を取得するために、次のコードを使用しています。C#合計の問題
private void button16_Click(object sender, EventArgs e)
{
int sum = 0;
for (int i = 0; i < dataGridView4.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView4.Rows[i].Cells[10].Value);
}
try
{
decimal tot = 0;
for (int i=0; i <= dataGridView4.RowCount -1; i++)
{
tot += Convert.ToDecimal (dataGridView4.Rows[i].Cells[10].Value);
}
if (tot==0) {}
textBox34.Text = tot.ToString();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
私は、エラーメッセージを取得しています
入力文字列が正しい形式ではありませんでした。
問題が書式設定にあることがわかりました。その列のSQLサーバーのデータ型がお金になるとします。 SQLサーバーはこの形式に保存する番号を変更します。 00.0000 たとえば、10を保存すると、SQL Serverは10.0000として保存します。
(。)を削除するとエラーは表示されません。
私が10.0000 + 3.0000を合計しようとすると、決してうまくいかない。
アイデア?
あなたのグリッド列の値をどのように表示されますか?小数点の区切り文字(カンマなど)を持っていますか、区切り記号として使用していますか? – Steve
ロケールに問題があります。あなたのコンピュータで設定された言語は小数点を区切るために '.'以外のものを使用しますか? – litelite
私は多くのコンピュータでそれを試しましたが、それらはすべて(、) – MicrosiM