2016-11-30 94 views
1

我想知道如何將數據插入到兩個不同的表中。如何將數據插入到兩個表中

訂單表,其中有:

訂單ID,信息,價格,增值稅,CUSTOMER_ID

客戶

客戶ID,姓名,姓氏

現在我想輸入新的訂單,這將有主鍵爲1.

我該如何編寫SQL來爲特定人員輸入此訂單,..讓我們說一個人在客戶表中具有ID 1?

這是我到目前爲止,但我就是無法找到解決辦法

using (SqlCommand cmd = new SqlCommand("INSERT INTO [Orders] (info, Price, VAT, Customer_ID) VALUES (@info, @Price, @VAT, @Customer_ID)")) 
       { 
        cmd.Connection = conn; 
        cmd.Parameters.AddWithValue("@info", input1.Text); 
        cmd.Parameters.AddWithValue("@Price", input2.Text); 
        cmd.Parameters.AddWithValue("@VAT", input3.Text); 
        conn.Open(); 
        cmd.ExecuteNonQuery(); 
       } 

UPDATE

我不想通過輸入文本框外鍵(ID),但從當前登錄的用戶獲得...

回答

1

除非我誤解你的問題,它應該是一個簡單的事情,添加另一個參數。

using (SqlCommand cmd = new SqlCommand(
    "INSERT INTO [Orders] (info, Price, VAT, Customer_ID) VALUES (@info, @Price, @VAT, @Customer_ID)")) 
{ 
    cmd.Connection = conn; 
    cmd.Parameters.AddWithValue("@info", input1.Text); 
    cmd.Parameters.AddWithValue("@Price", input2.Text); 
    cmd.Parameters.AddWithValue("@VAT", input3.Text); 
    cmd.Parameters.AddWithValue("@Customer_ID", input4.Text); 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
} 

如果沒有CUSTOMER_ID作爲輸入域,並希望使其始終創建一個訂單客戶「1」,然後執行以下操作

using (SqlCommand cmd = new SqlCommand(
    "INSERT INTO [Orders] (info, Price, VAT, Customer_ID) VALUES (@info, @Price, @VAT, 1)")) 
{ 
    cmd.Connection = conn; 
    cmd.Parameters.AddWithValue("@info", input1.Text); 
    cmd.Parameters.AddWithValue("@Price", input2.Text); 
    cmd.Parameters.AddWithValue("@VAT", input3.Text); 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
} 

反之,如果你想要做看看哪個客戶訂單是更加動態的,我們將首先需要關於您的數據輸入的更多信息。您需要執行select查詢來查找customer_ID,然後將其作爲參數傳入,或者僅在插入查詢中進行子選擇。

編輯:

下面是使用動態查詢代碼,您在留言

using (SqlCommand cmd = new SqlCommand(
     "INSERT INTO [Orders] (info, Price, VAT, Customer_ID) SELECT @info, @Price, @VAT, CustomerID FROM Customer WHERE Name = @Username)")) 
    { 
     cmd.Connection = conn; 
     cmd.Parameters.AddWithValue("@info", input1.Text); 
     cmd.Parameters.AddWithValue("@Price", input2.Text); 
     cmd.Parameters.AddWithValue("@VAT", input3.Text); 
     cmd.Parameters.AddWithValue("@Username", SomeVariableWithUsername); 
     conn.Open(); 
     cmd.ExecuteNonQuery(); 
    } 
+0

我不想輸入外鍵...我想從目前的閱讀登錄的用戶 – aiden87

+0

好吧,有沒有在客戶表與登錄用戶當前匹配的領域? 如果是這樣,那麼您可以使用客戶表中的唯一標識信息來查找正確的客戶。 在您查詢將會像 'INSERT INTO [常規](信息,價格,增值稅,CUSTOMER_ID)選擇@info,@price,@VAT,從客戶WHERE名稱= @用戶)' 然後,只需添加@UserName這種情況下,作爲另一個參數 –

+0

不,你可以在我的問題中看到我的領域。 Customer_ID應該是數字1 ....基於此,客戶可以得到他的訂單信息 – aiden87

1

提到可能是您的parametry缺什麼?

cmd.Parameters.AddWithValue("@Customer_ID", input4.Text); 
+0

我不想輸入外鍵...我想從當前登錄的用戶讀取它 – aiden87

相關問題