VB.NET - 无法将参数值从String转换为Guid问题

时间:2012-11-17 08:30:30

标签: sql sql-server vb.net sql-server-2008

我是VB.NET的新手。我可以从SQL Server Management Studio执行以下存储过程:

Declare @iResult int
Declare @sMessage VarChar(100)

Exec [WebSite].[vwWebCustomerPasswordUpdate] 'BF49F8B8-B580-4714-85F5-D87E4901009E', 'EF80AF910FA07870E25B1A4C86D10402', @iResult output, @sMessage output

Print @iResult
Print @sMessage

现在,我想从VB.NET执行存储过程。我正在编写此代码,但它给出了错误“无法将参数值从字符串转换为Guid”。这是失败的代码:

Dim ssql As String
ssql = " Declare @iResult int Declare @sMessage VarChar(100) Exec [WebSite].[vwWebCustomerPasswordUpdate] 'BF49F8B8-B580-4714-85F5-D87E4901009E', 'EF80AF910FA07870E25B1A4C86D10402', @iResult output, @sMessage output"

Dim connection As New SqlConnection(connectionString)
connection.Open()

Dim Command As New SqlCommand(ssql, connection)
Command.CommandType = CommandType.StoredProcedure
Command.CommandText = "[WebSite].[vwWebCustomerPasswordUpdate]"
Command.Parameters.Add("@CustGUID", SqlDbType.UniqueIdentifier)
Command.Parameters("@CustGUID").Value = "BF49F8B8-B580-4714-85F5-D87E4901009E"
Command.Parameters.Add("@pWordHash", SqlDbType.VarChar)
Command.Parameters("@pWordHash").Value = "BF49F8B8-B580-4714-85F5-D87E4901009E"

Command.BeginExecuteNonQuery()

2 个答案:

答案 0 :(得分:3)

你的答案是

Command.Parameters("@CustGUID").Value = New Guid("BF49F8B8-B580-4714-85F5-D87E4901009E")

答案 1 :(得分:1)

更改

Command.Parameters("@CustGUID").Value = 
      "BF49F8B8-B580-4714-85F5-D87E4901009E"

Command.Parameters("@CustGUID").Value = 
     New Guid("BF49F8B8-B580-4714-85F5-D87E4901009E");