dataGridview 第一行的列名稱的數量由於插入了值而返回沒有值。DataGridview跳過第一行的列值
對於我們的Peers'Convenient我繪製表格,因爲它有助於更好地回答它。
我上的DataGridView表如下:
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("name",typeof(string));
dt.Columns.Add("amount",typeof(decimal));
dataGridView1.DataSource = dt;
dataGridView1.Columns[1].DefaultCellStyle.Format = "f2";
}
現在我準備好的表格和我的主要代碼如下:
private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
{
decimal sum = 0.00m;
for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
sum = sum + Convert.ToDecimal(dataGridView1[1, i].Value);
textBox1.Text = sum.ToString("f2");
}
}
上面的代碼拋出錯誤,如「對象可以不投從DBNull到其他類型「。即使有價值。
現在就來看看另一個代碼:
private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
{
decimal sum = 0.00m;
for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
if (dataGridView1[1, i].Value != DBNull.Value)
{
sum = sum + Convert.ToDecimal(dataGridView1[1, i].Value);
textBox1.Text = sum.ToString("f2");
}
}
}
下面這段代碼不拋出任何錯誤,但仍然有它的問題。問題是當我輸入的數值時,數額看起來像是跳過第一行的列名的值數額。
例如...
我輸入上的列名量值低於:
1st Row column amount values is = 12
2nd Row column amount values is = 12
3rd Row column amount values is = 12
現在在TextBox1中的總的表現是= 24,其中作爲實際的總爲= 36.
編碼時出現了錯誤,表明dataGridview的第一行的列值不被接受。
@lordan,它不工作,它返回第一行的列值是0.00,您可以嘗試它。 – mahesh 2010-10-06 07:12:18
@lordan,你很好,但試試吧。它只是回報。 0.00在textbox1中,我在第一行的第一列輸入值「12」。 – mahesh 2010-10-06 07:20:47
@mahesh是否有可能把這種和平的代碼,因爲如果你正在編輯單元格的值,新的值可能不會放在單元格值中,我會建議把這個代碼放在CellEndEdit事件 – IordanTanev 2010-10-06 09:45:34