我有一个分层应用程序。数据层通过使用包含TableAdapter的数据集对数据库进行调用。在数据库表中,有一个名为ID的字段,类型为UniqueIdentifier。然后我创建以下查询:
select * from tbl where ID=@ID
当我尝试在数据集设计器中预览结果时,出现了“无法将参数值从字符串转换为GUID”的错误。
我尝试在传递的值周围添加单引号,但没有起作用。
我错在哪里了?
我有一个分层应用程序。数据层通过使用包含TableAdapter的数据集对数据库进行调用。在数据库表中,有一个名为ID的字段,类型为UniqueIdentifier。然后我创建以下查询:
select * from tbl where ID=@ID
您的数据库中列ID是Guid类型,但您的参数是一个string
。
您可以将参数转换为SqlGuid
:
command.Parameters.Add("@GuidParameter", SqlDbType.UniqueIdentifier).Value = new System.Data.SqlTypes.SqlGuid(YourGuid); //The value of @ID
链接: https://msdn.microsoft.com/library/system.data.sqltypes.sqlguid.aspx?f=255&MSPPError=-2147217396