.net 为什么可以';我不能将e.CommandArgument强制转换为Guid吗?

.net 为什么可以';我不能将e.CommandArgument强制转换为Guid吗?,.net,asp.net,vb.net,.net,Asp.net,Vb.net,以下代码在运行时失败 Dim Id As Guid = CType(e.CommandArgument, Guid) 作为Guid=CType的Dim Id(例如CommandArgument,Guid) 它抛出此异常 System.InvalidCastException was unhandled by user code Specified cast is not valid 用户代码未处理System.InvalidCastException 指定的强制转换无效 为什么我不能将e.Com

以下代码在运行时失败

Dim Id As Guid = CType(e.CommandArgument, Guid) 作为Guid=CType的Dim Id(例如CommandArgument,Guid) 它抛出此异常

System.InvalidCastException was unhandled by user code Specified cast is not valid 用户代码未处理System.InvalidCastException 指定的强制转换无效 为什么我不能将e.CommandArgument转换为Guid?

试试:

Dim DeleteId As Guid = New Guid(Convert.ToString(e.CommandArgument))
这很有效

Dim DeleteId As Guid = New Guid(DirectCast(e.CommandArgument, String)) Dim DeleteId As Guid=新Guid(DirectCast(e.CommandArgument,String)) 尝试:

这很有效

Dim DeleteId As Guid = New Guid(DirectCast(e.CommandArgument, String)) Dim DeleteId As Guid=新Guid(DirectCast(e.CommandArgument,String))
消息“cast无效”表明其中一个值的数据类型与数据库中的数据类型不匹配。能否在设置DeleteId值的行上放置断点,并查看Guid的外观?然后,您可以将其与DogId数据库中的内容进行比较。我怀疑您会在那里发现数据类型问题。

消息“强制转换无效”表明其中一个值的数据类型与数据库中的数据类型不匹配。能否在设置DeleteId值的行上放置断点,并查看Guid的外观?然后,您可以将其与DogId数据库中的内容进行比较。我怀疑您会在那里发现数据类型问题。

我猜e.CommandArgument是一个字符串,不能转换为Guid。可以从字符串创建Guid:

在C#中:

我真的不知道VB.NET语法,但我猜一下:

 Dim DeleteId As Guid = New Guid(e.CommandArgument);

我猜e.CommandArgument是一个字符串,它不能转换为Guid。可以从字符串创建Guid:

在C#中:

我真的不知道VB.NET语法,但我猜一下:

 Dim DeleteId As Guid = New Guid(e.CommandArgument);

您的错误与LINQ to SQL无关。。。这是一个铸造错误。使用“new Guid(e.CommandArgument)”。

您的错误与LINQ to SQL无关。。。这是一个铸造错误。使用“新Guid(例如CommandArgument)”。

对不起。问题出在第137行。我无法将e.CommandArgument强制转换为Guid。这将替换第137行。抱歉。问题出在第137行。我无法将e.CommandArgument强制转换为Guid。这将替换第137行。抱歉。问题出在第137行。我不能将e.CommandArgument转换为Guid。啊哈,我猜詹姆斯·科伦的回答会解决你的问题。对不起。问题出在第137行。我不能将e.CommandArgument转换为Guid。啊哈,我猜詹姆斯·科伦的回答会解决你的问题。你在我写完我的之前就发布了这个。。。这当然是正确的答案。你在我写完我的之前就发布了这个。。。这当然是正确的答案。