Считывание данных с datagridview из нужного столбца
Как считать данные из datagridvew из нужного столбца (например 3) и записать в массив чисел. Сделал что-то такое, но не работает Cells
int[] mas = new int[dataGridView1.RowCount];
int i = 0;
foreach (var row in dataGridView1.Rows)
mas[i++] = row.Cells[3].Value;
Ответы (1 шт):
Автор решения: Frehzy
→ Ссылка
internal class RowHelper<T>
{
private readonly DataGridView _dgv;
public int? RowIndex { get; private set; }
public int? ColumnIndex { get; private set; }
public T Value { get; private set; }
public RowHelper(DataGridView dgv) =>
_dgv = dgv;
public T GetValueByColumnName(string columnName)
{
RowIndex = _dgv.CurrentCell?.RowIndex;
if (RowIndex is null)
throw new NullReferenceException("Должна быть выделена хотя-бы одна строка.");
ColumnIndex = DataGridHelper.GetIndexByName(_dgv, columnName);
if (ColumnIndex is null)
throw new NullReferenceException($"Не был найден столбец с именем {columnName}");
return (T)Convert.ChangeType(_dgv.Rows[(int)RowIndex].Cells[(int)ColumnIndex].Value, typeof(T));
}
}
Использовать:
var result = new RowHelper(dgv).GetValueByColumnName("*ColumnName*");
Возвращает значение с выделенной строки.
Конечно, ЛУЧШЕ использовать привязку данных (погугли BindingSource), но, если слишком лень, то можно воспользоваться такой реализацией