2014-12-07 50 views
0

我在表格適配器中有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) 

回答

1

從以下鏈接:http://blogs.msdn.com/b/smartclientdata/archive/2005/10/31/returnidentityvaluequery.aspx

...還有最後一個重要的部分:在DataSet中選擇新的查詢設計器並將ExecuteMode屬性從NonQuery更改爲標量。 ...

NonQuery將返回受影響的行數(因此爲什麼總是得到1),而標量模式返回選定的值本身。

+0

我無法找到TableAdapter的InsertCommand屬性上的'ExectuteMode' ...我在哪裏可以找到它? – Flo 2014-12-07 02:16:17

+0

似乎你的建議不適合他定期的插入命令....我不得不添加我自己的自定義插入語句,然後它的工作。 – Flo 2014-12-07 02:27:15