Мне нужно показать сумму столбца count
из этого datagridview
, но я не знаю, как я могу получить данные в datagridview.
Когда я нажимаю на кнопку, я хочу показать 94
в label1
.
Как это можно сделать?
Мне нужно показать сумму столбца count
из этого datagridview
, но я не знаю, как я могу получить данные в datagridview.
Когда я нажимаю на кнопку, я хочу показать 94
в label1
.
Как это можно сделать?
int sum = 0;
for (int i = 0; i < dataGridView1.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
}
label1.Text = sum.ToString();
Быстрый и чистый способ с помощью LINQ
int total = dataGridView1.Rows.Cast<DataGridViewRow>()
.Sum(t => Convert.ToInt32(t.Cells[1].Value));
проверено на VS2013
Если ваша сетка привязана к DataTable
, я считаю, что вы можете просто сделать:
// Should probably add a DBNull check for safety; but you get the idea.
long sum = (long)table.Compute("Sum(count)", "True");
Если он не привязан к таблице, вы можете легко сделать это:
var table = new DataTable();
table.Columns.Add("type", typeof(string));
table.Columns.Add("count", typeof(int));
// This will automatically create the DataGridView columns.
dataGridView.DataSource = table;
Используйте LINQ, если можете.
label1.Text = dataGridView1.Rows.Cast<DataGridViewRow>()
.AsEnumerable()
.Sum(x => int.Parse(x.Cells[1].Value.ToString()))
.ToString();
decimal Total = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
Total+= Convert.ToDecimal(dataGridView1.Rows[i].Cells["ColumnName"].Value);
}
labelName.Text = Total.ToString();
Добавьте общую строку в ваш сбор данных, который будет привязан к сетке.
вы можете сделать это лучше с помощью двух datagridview, вы добавите один и тот же источник данных, спрячьте заголовки второго, установите высоту второго = в высоту строк первого, отключите все изменчивые атрибуты второго, синхронизировать полосы прокрутки обоих, только горизонтальные, поставить вторую на botton первого и т.д.
взгляните:
dgv3.ColumnHeadersVisible = false;
dgv3.Height = dgv1.Rows[0].Height;
dgv3.Location = new Point(Xdgvx, this.dgv1.Height - dgv3.Height - SystemInformation.HorizontalScrollBarHeight);
dgv3.Width = dgv1.Width;
private void dgv1_Scroll(object sender, ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
dgv3.HorizontalScrollingOffset = e.NewValue;
}
}
//declare the total variable
int total = 0;
//loop through the datagrid and sum the column
for(int i=0;i<datagridview1.Rows.Count;i++)
{
total +=int.Parse(datagridview1.Rows[i].Cells["CELL NAME OR INDEX"].Value.ToString());
}
string tota