C# 将uniqueidentifier参数传递给存储过程

C# 将uniqueidentifier参数传递给存储过程,c#,sql-server,uniqueidentifier,C#,Sql Server,Uniqueidentifier,我尝试使用以下代码将uniqueidentifier参数传递给存储过程: myCommand.Parameters.Add("@BlogID", SqlDbType.UniqueIdentifier).Value = "96d5b379-7e1d-4dac-a6ba-1e50db561b04"; 我一直收到一个错误,但是说,该程序无法从字符串转换为GUID。我传递的值不正确吗?试试这个 myCommand.Parameters.Add("@BlogID", SqlDbType.UniqueId

我尝试使用以下代码将uniqueidentifier参数传递给存储过程:

myCommand.Parameters.Add("@BlogID", SqlDbType.UniqueIdentifier).Value = "96d5b379-7e1d-4dac-a6ba-1e50db561b04";
我一直收到一个错误,但是说,该程序无法从字符串转换为GUID。我传递的值不正确吗?

试试这个

myCommand.Parameters.Add("@BlogID", SqlDbType.UniqueIdentifier).Value = new Guid("96d5b379-7e1d-4dac-a6ba-1e50db561b04");
唯一标识符是一个。因此,它是与字符串不同的对象类型

你需要

myCommand.Parameters.Add("@BlogID", SqlDbType.UniqueIdentifier).Value = 
                                        new Guid("96d5b379-7e1d-4dac-a6ba-1e50db561b04");

您是否将
Value
设置为字符串表示形式或guid?它是字符串,但采用guid格式您说“我给您一个guid!”,但您给它一个字符串。难怪那个可怜的人感到困惑。给它一个Guid!Guid结构有一个接受字符串参数的构造函数(用于将Guid的字符串表示形式转换为新的Guid对象)。另请参见另一种选择,即使用和类似的方法。向下投票,因为它缺少解释。请解释什么是错误的,而不是只说“做这个”。对于VB来说,使用“Option Strict On”,行看起来像是
paramList.Add(New SqlParameter(@blogID),SqlDbType.UniqueIdentifier),带有{.Value=New Guid(“96d5b379-7e1d-4dac-a6ba-1e50db561b04”)