2014-03-19 23 views
-1

我有兩列1.訂單和2 Billing_address這裏是我的表結構如何將表單列值插入到sql server 2012中的另一個表列中?

[OrderID]  INT   IDENTITY (1, 1) NOT NULL, 
[CustomerName] NVARCHAR (256) NOT NULL, 
[OrderDate] DATETIME  CONSTRAINT [DF_Orders_OrderDate] DEFAULT (getdate()) NOT NULL, 
[ShipDate]  DATETIME  CONSTRAINT [DF_Orders_ShipDate] DEFAULT (getdate()) NOT NULL, 
CONSTRAINT [PK_Orders] PRIMARY KEY NONCLUSTERED ([OrderID] ASC) 

這裏是我的Billing_address表結構:

[b_id]  INT   IDENTITY (1, 1) NOT NULL, 
    [bname] NVARCHAR (50) NOT NULL, 
    [baddress] TEXT   NOT NULL, 
    [bcity] NVARCHAR (50) NOT NULL, 
    [bzip]  NUMERIC (18) NOT NULL, 
    [bcountry] NVARCHAR (50) NOT NULL, 
    [bphone] NUMERIC (18) NOT NULL, 
    [bfax]  NVARCHAR (50) NULL, 
    [OrderID] INT   NOT NULL, 
    CONSTRAINT [PK_Billing_address] PRIMARY KEY CLUSTERED ([b_id] ASC), 
    CONSTRAINT [FK_Billing_address_Orders] FOREIGN KEY ([OrderID]) REFERENCES [dbo].[Orders] ([OrderID]) 

我插入用戶提供的表單數據到Billing_address表, Billing_address表有一個列名OrderID我想從Orders表列OrderID值的列中插入值,這裏是我的插入查詢代碼:

com.CommandText = "Insert Into Billing_address(bname,baddress,bcity,bzip,bcountry,bphone,bfax,OrderID) SELECT ('" + name.Text + "','" + address.Text + "','" + city.Text + "','" + zip.Text + "','" + country.SelectedValue + "','" + phone.Text + "','" + fax.Text + "', OrderID FROM Orders"; 

我執行這個查詢後得到的錯誤,我上面有我想要的東西,並解釋此查詢,我認爲無法插入我的要求,請幫我達到我的要求,在此先感謝。

+1

你需要得到鏈接到帳單地址從你的ASP頁面將訂單。在繼續閱讀關於Sql注入之前 – Steve

+0

'我有兩列1.訂單和2. Billing_address'。你的意思是兩張桌子? '執行此查詢後出現錯誤'。那個錯誤是...? – LittleBobbyTables

+0

不知道我該怎麼做:( –

回答

0

你的語法是錯誤的,你實際上並沒有選擇從Orders表的訂單ID,你得到所有的人;爲了這個工作,你需要添加一個WHERE到那個SELECT。無論如何,因爲你實際上插入了一個全新的數據行,只有訂單ID需要匹配,子查詢可能不適合這項工作。

你應該先得到你處理訂單的訂單ID(你可能已經在你的應用程序中使用,但如果沒有,那麼就看看它);然後使用已有的新值和訂單ID做一個簡單的INSERT。

並請使用存儲過程這一點,或至少是一定要淨化你的投入。
你永遠不應該直接將用戶輸入到數據庫中。

相關問題