S'il vous plaît aidez-moi à comprendre où je vais mal. OK allons-y! 2 DataGridViews, en premier je suis des services de magasin dans la liste de second ordre. quand je pousse le bouton Enregistrer, ce code se produira:Insérer les données dans la table (à partir de select) en utilisant 2 DataGridView C# windowsForm
public void insert_sales_list()
{
conn.Open();
foreach (DataGridViewRow row in dgvService.SelectedRows)
{
SQLiteCommand cmd = new SQLiteCommand("insert into sales_list (sales_created_date, sales_created_name, emp_name, cust_phone, cust_name, planned_date, planned_time, service_name, discount, price, order_id) values (@ocd, @ocn, @emp, @c_phone, @c_name, @p_date, @p_time, @sn, @disc, @price, @o_id)", conn);
cmd.Parameters.AddWithValue("@ocd", DateTime.Now);
cmd.Parameters.AddWithValue("@ocn", lblLoginUser.Text);
cmd.Parameters.AddWithValue("@emp", dgvOrderList.CurrentRow.Cells[1].Value.ToString());
cmd.Parameters.AddWithValue("@c_phone", dgvOrderList.CurrentRow.Cells[2].Value.ToString());
cmd.Parameters.AddWithValue("@c_name", dgvOrderList.CurrentRow.Cells[3].Value.ToString());
cmd.Parameters.AddWithValue("@p_date", dgvOrderList.CurrentRow.Cells[5].Value);
cmd.Parameters.AddWithValue("@p_time", dgvOrderList.CurrentRow.Cells[6].Value.ToString());
cmd.Parameters.AddWithValue("@sn", row.Cells[0].Value.ToString());
cmd.Parameters.AddWithValue("@disc", dgvOrderList.CurrentRow.Cells[4].Value.ToString());
cmd.Parameters.AddWithValue("@price", row.Cells[1].Value.ToString());
cmd.Parameters.AddWithValue("@o_id", dgvOrderList.CurrentRow.Cells["order id"].Value);
cmd.ExecuteNonQuery();
string sql = "update order_list set status = 'Saved' where id = '" + dgvOrderList.CurrentRow.Cells["order id"].Value + "'";
cmd = new SQLiteCommand(sql, conn);
cmd.ExecuteNonQuery();
}
conn.Close();
Par ce code, vous voyez que j'insérer simplement les données de liste de commandes à la liste des ventes, l'utilisateur choisir le service ou les services de DataGridView.Service, il peut prendre des service de la liste. Ce code fonctionne très bien.
Étape suivante. J'ai une autre table où chaque service a ses propres matériaux, par exemple - la coupe de cheveux des hommes a du savon, du shampoing et du papier de soie dans les matériaux. Et j'ai besoin d'insérer ces données dans le tableau SalesMaterials. Et je pense que le code est faux, s'il vous plaît aidez-moi à trouver cette erreur? Code:
public void insert_sales_materials()
{
conn.Open();
foreach (DataGridViewRow row in dgvService.SelectedRows)
{
string Query = "insert into sales_list_materials(order_id, material_id, norma, created_name, creation_date) " +
"values(select '" + dgvOrderList.CurrentRow.Cells["order id"].Value + "', a.material_id, a.norma, '" + lblLoginUser.Text + "', '" + DateTime.Now + "' from service_materials a where a.service_id = '" + row.Cells[2].Value + "')";
SQLiteCommand cmd = new SQLiteCommand(Query, conn);
cmd.ExecuteNonQuery();
}
conn.Close();
}
Erreur:
Informations complémentaires: erreur SQLite
près de "sélectionner": erreur de syntaxe