首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NewSequentialID和键入的DataAdapters

NewSequentialID和键入的DataAdapters
EN

Stack Overflow用户
提问于 2011-12-14 01:56:36
回答 1查看 338关注 0票数 0

我在尝试使用类型化数据适配器在sql server中创建新行时遇到问题,其中主键设置为GUID,缺省值为NewSequentialID()。

列friendInviteID是一个GUID,其缺省值为NewSequentialID()

代码语言:javascript
复制
        Using myDT As New DAL.mbrFriendInvites.mbrFriendInvitesDataTable
            Using myTA As New DAL.mbrFriendInvitesTableAdapters.mbrFriendInvitesTableAdapter

                Dim row As DAL.mbrFriendInvites.mbrFriendInvitesRow = myDT.NewmbrFriendInvitesRow
                With row
                    .friendInviteID = Nothing
                    .mbrID = 11
                    .appID = 2
                    .contactEmail = "blah@blah.com"
                    .contactName = "blah blah"
                    .timesSent = 0
                End With

                myDT.AddmbrFriendInvitesRow(row)

                Dim result As Integer = myTA.Update(myDT)
                HttpContext.Current.Response.Write("rows updated: " & result)

            End Using
        End Using

当我使用上述方法插入新行时,SQL Server将friendInviteID的值设置为: 00000000-0000-0000-0000-000000000000

它似乎不想使用NewSequentialID()默认值。

我可以手动创建GUID并以这种方式插入它,但这不会创建SequentialID。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-14 02:45:08

更改TableAdapter的InsertCommand,以便它创建GUID或调用任何返回它的标量值UDF:

Click here for full-view

如果您只是想在sql-server中创建一个GUID,您也可以使用newid()

代码语言:javascript
复制
INSERT INTO Test (idTest, Value, Test)
VALUES    (newid(),@Value,@Test); 

您还可以作为InsertCommand的CommandType来执行所有操作,并通过输出参数返回实际值。

最近我问自己如何检索这些主键:Retrieve identity value from inserted record's primary key

如果你需要更多关于这个问题的信息,我将看看我是如何实现它的。不管怎样,你需要InputOutput作为你的InsertCommand参数的Direction

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8493846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档