无法将参数值从字符串转换为guid

5 asp.net tableadapter n-tier-architecture

我有一个分层应用程序.数据层使用包含tableadapter的数据集调用数据库.在数据库表中有一个名为ID的字段UniqueIdentifier.然后我创建以下查询:

select * from tbl where ID=@ID
Run Code Online (Sandbox Code Playgroud)

当我尝试在数据集设计器中预览结果时,我收到错误"无法将参数值从字符串转换为guid".

我尝试在传入的值周围添加单引号,但没有用.

我哪里错了?

Agh*_*oub 9

您的列ID是数据库中的Guid类型,但您的参数是a string.

您可以将参数转换为SqlGuid:

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

链接:https://msdn.microsoft.com/library/system.data.sqltypes.sqlguid.aspx?f = 255&MSPPError = -2147217396