2017-10-10 13 views
0

こんにちは、2つのテーブルのデータを1つのテーブルに挿入する正しい方法は3つのテーブルなので、はOrder_IDを、Tbl_CashierCashier_IDTbl_FinalizedOrder_IDおよびCashier_IDである。テーブルの完全な設計2つのテーブルのデータを1つのテーブルに挿入するC#

Tbl_Cashier

CREATE TABLE [dbo].[Tbl_Cashier] (
    [Cashier_ID] INT   IDENTITY (1, 1) NOT NULL, 
    [FName]  VARCHAR (50) NOT NULL, 
    [MName]  VARCHAR (50) NULL, 
    [LName]  VARCHAR (50) NOT NULL, 
    [Address] NVARCHAR (50) NOT NULL, 
    [ContactNo] VARCHAR (50) NOT NULL, 
    [Email]  NVARCHAR (50) NOT NULL, 
    [Age]  INT   NOT NULL, 
    [Gender]  VARCHAR (50) NOT NULL, 
    [Password] VARCHAR (50) NOT NULL, 
    [role]  NVARCHAR (50) NULL, 
    PRIMARY KEY CLUSTERED ([Cashier_ID] ASC) 
); 

Tbl_order

CREATE TABLE [dbo].[Tbl_order] (
    [Order_ID] INT   IDENTITY (1, 1) NOT NULL, 
    [CustomerNo] INT   NOT NULL, 
    [OrderName] NVARCHAR (MAX) NOT NULL, 
    [Quantity] INT   NOT NULL, 
    [Price]  FLOAT (53)  NOT NULL, 
    [Serves_way] INT   NOT NULL, 
    [Date]  DATETIME  NOT NULL, 
    PRIMARY KEY CLUSTERED ([Order_ID] ASC), 
    CONSTRAINT [Serves_wayFK] FOREIGN KEY ([Serves_way]) REFERENCES [dbo].[Tbl_Serve] ([Serve_ID]) 
); 

が私を私がアプリケーションにログインするときに、私はします。FNameでTbl_Cashierを使用

CREATE TABLE [dbo].[Tbl_Finalized] (
    [Finalized_ID] INT IDENTITY (1, 1) NOT NULL, 
    [Order_ID]  INT NOT NULL, 
    [Cashier_ID] INT NOT NULL, 
    [Customer_ID] INT NOT NULL, 
    PRIMARY KEY CLUSTERED ([Finalized_ID] ASC), 
    CONSTRAINT [CashierFK] FOREIGN KEY ([Cashier_ID]) REFERENCES [dbo].[Tbl_Cashier] ([Cashier_ID]), 
    CONSTRAINT [CustomerFK] FOREIGN KEY ([Customer_ID]) REFERENCES [dbo].[Tbl_Customer] ([Customer_ID]) 
); 

をTbl_Finalizedとパスワード ログインするには、の入手方法ログインしてCashier_IDTbl_Finalizedに挿入しますか?これは、コードの私のログです:

private void but_log_in_Click(object sender, EventArgs e) 
     { 
      if (tbx_username.Text == "" || Tbx_Password.Text == "") 
      { 
       MessageBox.Show("Please provide UserName and Password"); 
       return; 
      } 
      try 
      { 

       using (SqlConnection con = new SqlConnection(connectionString)) 
       using (SqlCommand cmd = new SqlCommand("Select * from 
       Tbl_Cashier where [email protected] and [email protected]", con)) 
       using (SqlDataAdapter adapt = new SqlDataAdapter(cmd)) 

       { 
        con.Open(); 
        cmd.Parameters.AddWithValue("@username", tbx_username.Text); 
        cmd.Parameters.AddWithValue("@password", Tbx_Password.Text); 


          HabibisGrll.Globals.sss = tbx_username.Text; 

        DataSet ds = new DataSet(); 
        adapt.Fill(ds); 
        con.Close(); 
        int count = ds.Tables[0].Rows.Count; 
        //If count is equal to 1, than show frmMain form 
        if (count == 1) 
        { 
         MessageBox.Show("Login Successful!"); 
         this.Hide(); 
         HabibisGrll fm = new HabibisGrll(); 
         fm.Show(); 
        } 
        else 
        { 
         MessageBox.Show("Login Failed!"); 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

と私はそれは私がTbl_FinalizedTbl_orderからOrder_IDに選択し、挿入されたOrder_IDを挿入したい私はTbl_orderに注文を挿入するためにリストボックスを使用するアプリケーションから。あなたが最初のフィールドはレジ係のIDであるデータセット、にデータを入れbut_log_in_Clickにリストボックス

private void Order() 
     { 
      using (SqlConnection connection = new SqlConnection(connectionString1)) 
      { 
       String query = "INSERT INTO Tbl_order (OrderName,Quantity,Price,Serves_way,Date,CustomerNo) VALUES (@OrderName,@Quantity, @Price,'" + servers + "','" + time1.ToString(format1) + "','" + Globals.order + "')"; 
       Globals.order++; 
       connection.Open(); 
       using (SqlCommand command = new SqlCommand(query, connection)) 
       { 
        // Add the length of this text column as third parameter... 
        command.Parameters.Add("OrderName", SqlDbType.NVarChar, 50); 
        command.Parameters.Add("Quantity", SqlDbType.Int); 
        command.Parameters.Add("Price", SqlDbType.Money); 
        command.Prepare(); 

       for (int i = 0; i < lst_OrderName.Items.Count; i++) 
       { 
        command.Parameters[0].Value = lst_OrderName.GetItemText(lst_OrderName.Items[i]); 
        command.Parameters[1].Value = Convert.ToInt32(lst_QTY.Items[i]); 
        command.Parameters[2].Value = Convert.ToDouble(lst_Price2.Items[i]); 

        command.ExecuteNonQuery(); 

        /* int totalRows = CustomerNo.Rows.Count; 
         int totalCols = CustomerNo.Columns.Count; 

         string value = CustomerNo.Rows[totalRows - 1][totalCols - 1].ToString();*/ 
       } 
      } 
     } 
    } 

答えて

0

からデータベースにすべての注文を挿入し、私のコードは、 - あなたがあなたのID

にログインしている今、安全な場所に保管してください
+0

yeap私はあなたのポイントを病気にしてそれを試して、あなたを更新^ ^、どのように 'Order_ID'の手掛かりについて? –

+0

https://stackoverflow.com/questions/42648/best-way-to-get-identity-of-inserted-row – BugFinder

+0

答えの手掛かりはここにあります^^でも2番目の部分はわかりませんtho ^^ –

関連する問題