ASP.NET和SQL - 将数据插入多个表中?

时间:2010-12-15 19:57:23

标签: asp.net sql insert multiple-tables

所以我之前已经问过类似的问题,但是我找不到具体情况的明确答案。我正在使用ASP.NET(在Visual Web Developer中),我需要将一个表单中的数据插入到两个单独的表中。这是我的数据来源:

<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 (?, ?, ?, ?)">

所以你看到我尝试使用两个插入语句,它只是返回一个错误,说SQL语句后面有额外的字符。我尝试取出分号,然后它说我错过了一个分号。是否可以使用此控件一次插入两个表?如果没有,我该如何解决这个问题?

更新:

好的,在代码隐藏中尝试过,但我认为我做得不对,现在它给了我这个错误:

'/ CCC'应用程序中的服务器错误。 索引或主键不能包含Null值。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.Data.OleDb.OleDbException:索引或主键不能包含Null值。

来源错误:

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行是突出显示的那一行。所以我认为它正在尝试插入,但由于某种原因,值为null,它没有从文本框中获取值。 我可能留下了一些明显的东西,我不知道,我真的很陌生。

1 个答案:

答案 0 :(得分:1)

为什么不尝试代码隐藏?

AccessDataSource1.InsertCommand = "First INSERT Statement";
AccessDataSource1.Insert();

AccessDataSource1.InsertCommand = "Second INSERT Statement";
AccessDataSource1.Insert();