所以我知道以前也有類似的問題,但我無法找到明確的答案來解決我的具體情況。我正在使用ASP.NET(在Visual Web Developer中),我需要將數據從一個表單插入到兩個單獨的表中。這是我的數據源:ASP.NET和SQL--將數據插入到多個表中?
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/courseinfo.mdb"
SelectCommand="SELECT * FROM [tableCourse], [tableFaculty]"
InsertCommand="INSERT INTO [tableCourse]
([department], [name_first], [name_last], [prefix],
[course_number], [credits], [title], [description])
VALUES (?, ?, ?, ?, ?, ?, ?, ?); INSERT INTO [tableFaculty] ([name_first], [name_last], [phone], [email])
VALUES (?, ?, ?, ?)">
所以你看,我用兩個INSERT語句嘗試,它只是回來了一個錯誤,說有SQL語句後多餘的字符。我試着拿出分號,然後說我錯過了一個分號。是否可以使用此控件一次插入兩個表?如果不是,我該如何解決這個問題?
UPDATE:
好吧,試圖在代碼隱藏,但我不認爲我所做的是正確的,現在它給我這個錯誤:
服務器錯誤/ CCC「應用程序。 索引或主鍵不能包含空值。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。
異常詳細信息:System.Data.OleDb.OleDbException:索引或主鍵不能包含空值。
源錯誤:
Line 87:
Line 88: AccessDataSource1.InsertCommand = "INSERT INTO [tableCourse] ([department], [name_first], [name_last], [prefix], [course_number], [credits], [title], [description]) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
Line 89: AccessDataSource1.Insert()
Line 90:
Line 91: AccessDataSource1.InsertCommand = "INSERT INTO [tableFaculty] ([name_first], [name_last], [phone], [email]) VALUES (?, ?, ?, ?)"
89號線是真實突出了一個。所以我認爲它試圖插入,但由於某些原因,這些值爲空,它沒有從文本框中獲取值。 我可能留下了一些明顯的東西,我不知道,我真的很新。
後面的代碼,只知道大約8個參數的不16. – 2010-12-15 20:19:09
我同意機智ncakmak。你可能應該嘗試這種方式,而不是這樣做。這種方式非常笨拙和容易出錯。另外,你的代碼也不會被你的代碼所知曉。 – 2010-12-15 22:00:20
你的代碼看起來不錯。你的主鍵字段的名稱是什麼,它是否設置爲自動增量? – 2010-12-16 01:06:40