Заполнение ячеек datagridview после проверки первой строки в C#
У меня есть DataGridView из 4-5 столбцов.
DataGridView доступен для редактирования.
Когда я ввожу значение в ссылочный столбец, то сразу же оно заполняет другие значения в других ячейках из базы данных mysql.
Но когда я перехожу к следующей строке и хочу добавить еще одно значение в ссылочную ячейку, а затем она заполнит другую, как и первая, она этого не сделала...
Это то, что я пытался....
private void TAB_Credit_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (TAB_Credit.Columns[e.ColumnIndex].Name == "Reference") { string cmdText = @"SELECT * FROM tb_ajout_articles WHERE Reference=@ref"; MySqlDataAdapter sa = new MySqlDataAdapter(cmdText, MyConnexion); sa.SelectCommand.Parameters.Add("@ref", MySqlDbType.VarChar).Value = TAB_Credit.Rows[e.RowIndex].Cells["Reference"].Value.ToString(); DataTable dt2 = new DataTable(); sa.Fill(dt); if (dt.Rows.Count == 1) { TXT_Stock.Text = dt.Rows[0]["Quantite"].ToString(); //double value = (double)TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value * (double)TAB_Credit.Rows[e.RowIndex].Cells["Prix_Unitaire"].Value; TAB_Credit.Rows[e.RowIndex].Cells["Designation"].Value = dt.Rows[0]["Designation"].ToString(); TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value = dt.Rows[0]["Quantite"].ToString(); TAB_Credit.Rows[e.RowIndex].Cells["Prix_Unitaire"].Value = dt.Rows[0]["Prix_Unitaire"].ToString(); TAB_Credit["Total", e.RowIndex].Value = Convert.ToString( Convert.ToInt32(TAB_Credit["Quantite", e.RowIndex].Value) * Convert.ToInt32(TAB_Credit["Prix_Unitaire", e.RowIndex].Value)); //TAB_Credit.Rows[e.RowIndex].Cells["Total"].Value = value.ToString(); TXT_Brut.Text = TAB_Credit["Total", e.RowIndex].Value.ToString(); } } if (TAB_Credit.CurrentCell.ColumnIndex == 6) { if (Convert.ToInt32(TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value) > Convert.ToInt32(TXT_Stock.Text)) { MessageBox.Show("Stock finished"); TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value = dt.Rows[0]["Quantite"].ToString(); } else { TAB_Credit["Total", e.RowIndex].Value = Convert.ToString( Convert.ToInt32(TAB_Credit["Quantite", e.RowIndex].Value) * Convert.ToInt32(TAB_Credit["Prix_Unitaire", e.RowIndex].Value)); TXT_Brut.Text = TAB_Credit["Total", e.RowIndex].Value.ToString(); } } }
Мое приложение-это своего рода кассовый аппарат для магазина, поэтому в datagrid есть ссылка ,
это ссылка на продукт.
Когда пользователь вводит ссылку непосредственно, информация о продукте будет заполнена в других Столбцах, и пользователь может выбрать количество, которое он хочет, и он будет делать расчет.
Кроме того, я попытался поместить общую сумму счета в датагрид...
Ссылка | Продукт |Количество |Цена / Всего / Всего Счета
AB / AB|2 |1000 |2000 |5000
BC |BC|3 |1000 |3000
Именно это я и пытаюсь сделать... Чтобы сделать это, я попробовал этот код:
private void TAB_Credit_RowValidated(object sender, DataGridViewCellEventArgs e) { int sum = 0; for (int i = 0; i < TAB_Credit.Rows.Count; ++i) { sum += Convert.ToInt32(TAB_Credit.Rows[i].Cells["Total"].Value); } TAB_Credit.Rows[e.RowIndex].Cells["Total_Fact"].Value = sum.ToString(); }
Что я уже пробовал:
Я пытался, но у меня возникли проблемы....