Insérer dans la table Order où customer_id est extrait de la table Customer où login == session

Je ne sais pas comment faire ça.

Quand l'user a acheté tous les produits que je veux l'insert dans la table de commands, en outre je veux insert là customer_id de la table de client où l'user se connecte = Session ["id"]. J'ai essayé mais ça n'a pas marché: / Que dois-je faire?

protected void ConfirmPurchase_Click(object sender, EventArgs e) { if (Session["id"] != null) { ssortingng username; username = Convert.ToSsortingng(Session["id"]); SqlConnection con = new SqlConnection(@"Data Source=SOME_SQL;Initial Catalog=Shop;Integrated Security=True"); con.Open(); SqlCommand cmd = new SqlCommand("INSERT INTO Orders (order_date, paid, transact_status, customer_id) VALUES (GETDATE() ,'" + cost.ToSsortingng("c") + "' ,'Przyjęto do bazy', SELECT customer_id FROM Customer WHERE login='" + username + "')", con); cmd.ExecuteNonQuery(); Response.Redirect("Payment/Payment.aspx"); } else { Response.Redirect("InputPersonalData.aspx"); } } 

Vous pouvez essayer en entourant l'user avec "(" et ")"

Au lieu de

 SELECT customer_id FROM Customer WHERE login='" + username + "' 

utilisation

 ( SELECT customer_id FROM Customer WHERE login='" + username + "' ) 

Vous combinez les deux saveurs de INSERT, INSERT … VALUES et INSERT … SELECT; l'option la plus facile à mon avis est de le faire à travers un INSERT … SELECT:

  SqlCommand cmd = new SqlCommand("INSERT INTO Orders (order_date, paid, transact_status, customer_id) SELECT GETDATE() ,'" + cost.ToSsortingng("c") + "' ,'Przyjęto do bazy', customer_id FROM Customer WHERE login='" + username + "'", con); 

Ensuite, il est recommandé d'utiliser des requêtes paramétrées pour éviter les risques tels que l'injection SQL.

Je pense que vous devez mettre la sous- subselect entre parenthèses:

 SqlCommand cmd = new SqlCommand("INSERT INTO Orders (order_date, paid, transact_status, customer_id) VALUES (GETDATE() ,'" + cost.ToSsortingng("c") + "' ,'Przyjęto do bazy', (SELECT customer_id FROM Customer WHERE login='" + username + "'))", con);