У меня есть вопрос, и я, кажется, не понимаю его правильно в этом... То, что я пытался сделать, это ввести значение (id) в ячейку datagridview, нажать клавишу ввода и заполнить соседние ячейки данными из БД (SQL), который соответствует идентификатору, который я ввел в первую ячейку. Вопросы:
Как получить событие нажатия клавиши в datagridview?
Как мне получить значение из этой конкретной ячейки, допустим целое число?
- Как сложить строки из таблицы данных, не удаляя первую строку в datagridview? Есть ли для него метод обновления?
Извините, если это основные вопросы, но я, кажется, не нашел ответа. Спасибо!
Изменить: вот код, который я пытался... что я сделал с этим, так это то, что когда я нажимаю ввод, я получаю набор новых пустых столбцов в сетке данных помимо столбцов, которые я уже создал
private void dataGridView_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewCell cell = row.Cells[0];
if (cell.Value == null || cell.Value.Equals("") || cell.ColumnIndex == 0)
{
dataGridView1.CurrentRow.cell[0].FormattedValue as int;
int idArticle = Convert.ToInt32(row.Cells[0].Value);
//int idArticle = Convert.ToInt32(dataGridView1.SelectedCells[0].Value);
dataGridView1.AutoGenerateColumns = true;
string constring = @"Data Source=DAN;Initial Catalog=administration;Integrated Security=True ";
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand cmd = new SqlCommand("SELECT id_article, article, quantity, precio FROM articlesSG WHERE id_article=@id_article", con))
{
cmd.Parameters.AddWithValue("id_article", idArticle);
cmd.CommandType = CommandType.Text;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
}
}
}
}
}