2012-07-30 52 views
5

我尝试使用下面的代码传递唯一标识符参数到存储过程:传递唯一标识符参数存储过程

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

我不断收到一个错误然而说,程序无法从字符串转换为GUID。我是否错误地传递了该值?

+1

你设置'Value'为字符串表示或GUID? – 2012-07-30 15:32:00

+0

这是一个字符串,但它是GUID格式 – TheGateKeeper 2012-07-30 15:32:31

+1

你说“我给你一个指导!”,但你给它一个字符串。难怪这个可怜的人感到困惑。给它一个指导! – Martin1921 2012-07-30 15:33:41

回答

22

尝试此

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

Downvote因为缺少解释。请解释什么是错的,而不是仅仅说“这样做”。 – Martin1921 2012-07-30 15:35:43

+7

@ Martin1921我认为这很自我解释+1 – ForkandBeard 2012-07-30 15:37:00

+0

谢谢,他们都工作。 – TheGateKeeper 2012-07-30 15:45:35

6

的唯一标识符是一个GUID。所以它是与你的字符串不同的对象类型。

你需要

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

谢谢,他们都工作。 – TheGateKeeper 2012-07-30 15:45:26