そのため、ショッピングカートに問題があります。Title および Price 列をカート テーブル (tblCart) から転送し、購入済みアイテム テーブル (tblPurchaseItem) に送信しようとしています。これは、想定どおりに正常に機能します。問題は、tblPurchaseItem に、tblCart にはない PurchaseID という余分な列があることです。ボタン「チェックアウト」をクリックすると、これが行われます。私が抱えている問題は、カートからのテーブルが転送されるたびに、tblPurchaseItem に追加された新しい行に値を設定しようとしていることです。たとえば、tblCart に映画のリストが追加されたとします。すべての映画が tblPurchaseItem で同じ値を持つようにしたいと考えています。次回誰かが「チェックアウト」ボタンをクリックしたときに、tblCart からの新しいテーブルを tblPurchaseItem に送信して、最後のテーブルの値 +1 にしたいと考えています。これを試してみると、私の PurchaseID 列は = のままで、値を取りません。どんなアドバイスでも大歓迎です!
「チェックアウト」ボタンのコードは次のとおりです。
private void Button_Click(object sender, RoutedEventArgs e)
{
purID += 1;
cn.Open();
String cmdString = "INSERT INTO tblPurchaseItem(Title, Price) Select Title, Price from tblCart";
String cmdString3 = "DELETE from tblCart";
String cmdString4 = "Select * from tblPurchaseItem";
SqlCommand cmd = new SqlCommand(cmdString, cn);
SqlCommand cmd3 = new SqlCommand(cmdString3, cn);
SqlCommand cmd4 = new SqlCommand(cmdString4, cn);
da = new SqlDataAdapter(cmd4);
dt = new DataTable("tblPurchaseItem");
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
String cmdString2 = "UPDATE tblPurchaseItem set PurchaseID = '" + purID + "' where PurchaseID is Null";
SqlCommand cmd2 = new SqlCommand(cmdString2, cn);
}
cmd.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
全体として、ユーザーが「チェックアウト」をクリックしたときに tblPurchaseItem に送信される最初のテーブルに purID 1 が割り当てられるとします。次にチェックアウト ボタンがクリックされたときに、これらの値を 2 に割り当てたいとします。 . したがって、各トランザクションには独自の purID があります。