我想创建一个GUID并将其存储在数据库中。
在C#中,可以使用Guid.NewGuid()创建guid。这将创建一个128位整数。SQL Server有一个唯一标识符列,其中包含一个巨大的十六进制数。
有没有一种好的/首选的方法可以让C#和SQL Server guids很好地结合在一起?(例如,使用Guid.New()创建guid,然后使用nvarchar或其他字段将其存储在数据库中……或通过其他方式创建SQL Server所需形式的某个十六进制数)
发布于 2009-09-16 22:50:41
SQL要求GUID为字符串。下面的Sql语句返回C#期望的字符串。
"'" + Guid.NewGuid().ToString() + "'"
就像这样
INSERT INTO TABLE (GuidID) VALUE ('4b5e95a7-745a-462f-ae53-709a8583700a')
是它在SQL中应该是什么样子。
发布于 2009-09-16 23:16:35
下面的代码片段展示了如何使用参数化查询插入GUID:
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();
}
}
发布于 2009-09-16 22:51:02
将其存储在数据库中数据类型为唯一标识符的字段中。
https://stackoverflow.com/questions/1435908
复制相似问题