【问题标题】:Return new identity value from table adapter Insert command从表适配器插入命令返回新的标识值
【发布时间】:2014-12-07 01:49:44
【问题描述】:

我在表适配器中有一个 insert 语句,但它一直返回 1,而不是新插入行的 id。为什么?

Dim TA As New pTableAdapters.householdsTableAdapter
lblResult.Text = TA.Insert(New Guid("32dd20eb-1691-457b-9ff5-fc41d687e578"), Trim(Title), 0, "add", "addr2", _
            "4544", "london", "ld", 0, "", Date.Now)

表适配器中的插入语句:

INSERT INTO households (userid, title, side, address, address2, zipcode, city, state, country, notes, createdate) VALUES (@userid,@title,@side,@address,@address2,@zipcode,@city,@state,@country,@notes,@createdate);SELECT CAST(scope_identity() AS int)

【问题讨论】:

    标签: asp.net sql-server insert identity


    【解决方案1】:

    来自以下链接:http://blogs.msdn.com/b/smartclientdata/archive/2005/10/31/returnidentityvaluequery.aspx

    ... 最后一个重要部分:在 DataSet Designer 中选择新查询并将 ExecuteMode 属性从 NonQuery 更改为 Scalar。 ...

    NonQuery 将返回受影响的行数(因此您总是得到 1),而 Scalar 模式返回所选值本身。

    【讨论】:

    • 我在 tableadapter 的 InsertCommand 属性上找不到ExectuteMode...我在哪里可以找到它?
    • 您的建议似乎不适用于常规的插入命令......我必须添加自己的自定义插入语句,然后它才能工作。
    猜你喜欢
    • 1970-01-01
    • 2021-04-27
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多