如何使用c#在GUID列中插入空值

本文关键字:插入 空值 GUID 何使用 | 更新日期: 2023-09-27 18:02:24

我搜索了整个网络。我想知道为什么这个简单的任务在c#中很难完成。

sqlcmd.Parameters.Add("@someid", System.Data.SqlDbType.UniqueIdentifier).Value =
string.IsNullOrEmpty(class.someid) ? System.Data.SqlTypes.SqlGuid.Null : new Guid(class.someid);

返回一个错误:

将参数值从字符串转换为guid失败

我的存储过程用c#传递的参数更新表中的一条记录。

我想做的是通过使用一个存储过程来更新一条记录及其特定列的空值,该存储过程传递来自c#的guid参数,guid有时可以为空值。这在c#中可能吗?

如何使用c#在GUID列中插入空值

你可以试试:

sqlcmd.Parameters.Add("@someid", System.Data.SqlDbType.UniqueIdentifier).Value =
string.IsNullOrEmpty(class.someid) ? System.Guid.Empty : new Guid(class.someid);

如果强制转换不起作用。在表中,确保这一列是否允许为空。class.someid具有构造函数的正确格式。

如果我没有错,您的列ID在您的数据库中是Guid类型,但您的参数是字符串。

您可以将您的参数转换为SqlGuid

command.Parameters.Add("@GuidParameter", SqlDbType.UniqueIdentifier).Value = new System.Data.SqlTypes.SqlGuid(YourGuid); //The value of @ID

链接:http://msdn.microsoft.com/fr-fr/library/system.data.sqltypes.sqlguid.aspx

还可以在存储过程中尝试以下操作:

Declare @someid uniqueidentifier = null

声明可空属性:

public Guid? column1;
分配Null:

column1 = null;