【问题标题】:ASP.NET and SQL - inserting data into more than one table?ASP.NET 和 SQL - 将数据插入多个表?
【发布时间】:2010-12-15 19:57:23
【问题描述】:

所以我知道以前有人问过类似的问题,但我找不到针对我的具体情况的明确答案。我正在使用 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 行是突出显示的行。所以我认为它正在尝试插入,但由于某种原因这些值为空,它没有从文本框中获取值。 我可能遗漏了一些明显的东西,我不知道,我真的很陌生。

【问题讨论】:

  • 您后面的代码,只知道大约 8 个参数而不是 16 个。
  • 我同意 ncakmak。您可能应该在预兆中尝试这样做,而不是以这种方式这样做。这种方式非常笨拙且容易出错。另外,您的代码隐藏也不知道您的参数的问题。
  • 您的代码看起来不错。您的主键字段的名称是什么,是否设置为自动增量?
  • 现在我有 prefix 和 course_number 作为 tableCourse 的主键字段,name_first 和 name_last 作为 tableFaculty 的主键字段。现在只是用这些来测试它。

标签: asp.net sql insert multiple-tables


【解决方案1】:

为什么不试试代码隐藏呢?

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

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

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 1970-01-01
    • 2021-10-09
    • 2013-02-11
    • 2018-01-10
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多