我正在开发一个Windows窗体会计应用程序。应用程序生成条目的会计分类帐。用户选择生成分类帐的日期时间段。从数据库获取值后,逻辑计算期初余额。问题是,如何在datagridview的第一行和最后一行分别显示开始和结束余额,因为datagridview的行是数据绑定。
代码:
dataGridView1.AutoGenerateColumns = false;
dt = new DataTable();
sda = new SqlDataAdapter("select CONVERT(varchar,date,101) as date,desc,credit,debit where user_Id='" + comboBox1.SelectedValue + "' and date BETWEEN'" + dateTimePicker1.Value.Date + "'AND'" + dateTimePicker2.Value.Date + "'", con);
sda.Fill(dt);
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "date";
dataGridView1.Columns[0].HeaderText = "Date";
dataGridView1.Columns[0].DataPropertyName = "date";
dataGridView1.Columns[1].Name = "desc";
dataGridView1.Columns[1].HeaderText = "Description";
dataGridView1.Columns[1].DataPropertyName = "desc";
dataGridView1.Columns[2].Name = "credit";
dataGridView1.Columns[2].HeaderText = "Credit";
dataGridView1.Columns[2].DataPropertyName = "credit";
dataGridView1.Columns[3].Name = "debit";
dataGridView1.Columns[3].HeaderText = "Debit";
dataGridView1.Columns[3].DataPropertyName = "debit";
现在,当我计算期初余额并使用datagridview1.Rows.Add()直接添加它时,它会给出错误,说明您无法以编程方式添加行,因为这些行是数据绑定的。
所以,请帮我实施。如果你有其他一些显示余额,请提及。
答案 0 :(得分:0)
user2748092, 如您所见,您无法向datbound datagridview添加行。删除绑定,并添加每一行,计算总计,然后将最后一行添加为总计。 Perhpas修改最后一行颜色以区分总计行。 在我看来,另一个选择是在gridview附近显示总数。因为它受到约束,所以确保总数在变化时增加/减少。
添加了代码 这应该可以帮助您找到总数。绑定datagrid后调用。粗略编辑可能需要更改。
For Each gvRow as GridViewRow in dataGridView1.Rows
total += double.parse(grvRow.Cells(0).Text
Next
TotalTextBox.Text = total
使用此方法,您可以循环dt(datatable)的结果,并将每一行应用于gridview。这是一个让你入门的例子。
Dim row As String() = New String() {"1", "Product 1", "1000"}
DataGridView1.Rows.Add(row)
尝试编写代码,然后询问有关您遇到问题的代码的问题。