ASP.NET和SQL--将数据插入到多个表中?
问题描述:
所以我知道以前也有类似的问题,但我无法找到明确的答案来解决我的具体情况。我正在使用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号线是真实突出了一个。所以我认为它试图插入,但由于某些原因,这些值为空,它没有从文本框中获取值。 我可能留下了一些明显的东西,我不知道,我真的很新。
答
为什么你不试试它的代码隐藏?
AccessDataSource1.InsertCommand = "First INSERT Statement";
AccessDataSource1.Insert();
AccessDataSource1.InsertCommand = "Second INSERT Statement";
AccessDataSource1.Insert();
后面的代码,只知道大约8个参数的不16. – 2010-12-15 20:19:09
我同意机智ncakmak。你可能应该尝试这种方式,而不是这样做。这种方式非常笨拙和容易出错。另外,你的代码也不会被你的代码所知晓。 – 2010-12-15 22:00:20
你的代码看起来不错。你的主键字段的名称是什么,它是否设置为自动增量? – 2010-12-16 01:06:40