首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL guid和C#唯一标识符

SQL guid和C#唯一标识符
EN

Stack Overflow用户
提问于 2009-09-16 22:47:07
回答 4查看 148.8K关注 0票数 71

我想创建一个GUID并将其存储在数据库中。

在C#中,可以使用Guid.NewGuid()创建guid。这将创建一个128位整数。SQL Server有一个唯一标识符列,其中包含一个巨大的十六进制数。

有没有一种好的/首选的方法可以让C#和SQL Server guids很好地结合在一起?(例如,使用Guid.New()创建guid,然后使用nvarchar或其他字段将其存储在数据库中……或通过其他方式创建SQL Server所需形式的某个十六进制数)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-16 22:50:41

SQL要求GUID为字符串。下面的Sql语句返回C#期望的字符串。

代码语言:javascript
复制
"'" + Guid.NewGuid().ToString() + "'"

就像这样

代码语言:javascript
复制
INSERT INTO TABLE (GuidID) VALUE ('4b5e95a7-745a-462f-ae53-709a8583700a')

是它在SQL中应该是什么样子。

票数 57
EN

Stack Overflow用户

发布于 2009-09-16 23:16:35

下面的代码片段展示了如何使用参数化查询插入GUID:

代码语言:javascript
复制
    using(SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        using(SqlTransaction trans = conn.BeginTransaction())
        using (SqlCommand cmd = conn.CreateCommand())
        {
            cmd.Transaction = trans;
            cmd.CommandText = @"INSERT INTO [MYTABLE] ([GuidValue]) VALUE @guidValue;";
            cmd.Parameters.AddWithValue("@guidValue", Guid.NewGuid());
            cmd.ExecuteNonQuery();
            trans.Commit();
        }
    }
票数 68
EN

Stack Overflow用户

发布于 2009-09-16 22:51:02

将其存储在数据库中数据类型为唯一标识符的字段中。

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

https://stackoverflow.com/questions/1435908

复制
相关文章

相似问题

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