簡體   English   中英

將數據從兩個表插入到一個表C#

[英]Insert data from two tables to one table C#

嗨,什么是將數據從兩個表插入一個表的正確方法,所以它們是3個表,我的第一個表是Tbl_order具有Order_ID ,第二個Tbl_Cashier具有Cashier_ID ,第三個是Tbl_Finalized具有Order_IDCashier_ID 桌子的完整設計

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])
);

Tbl_Finalized

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])
);

所以當我登錄應用程序時,我使用FName和密碼使用Tbl_Cashier ,然后登錄,如何獲取登錄的Cashier_ID並將其插入Cashier_ID中的Tbl_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 FName=@username and Password=@password", 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_order我想插入已經選擇的Order_ID ,並從Tbl_order插入到Order_ID中的Tbl_Finalized 我的代碼,將所有訂單從列表框中插入數據庫

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();*/
                }
            }
        }
    }

在but_log_in_Click中,您將數據放入數據集中,第一個字段是出納員ID-現在,將其保存為登錄ID后,將其保存在安全的地方

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM