【发布时间】:2008-10-31 20:15:20
【问题描述】:
以下代码在运行时失败……
Dim Id As Guid = CType(e.CommandArgument, Guid)它抛出这个异常......
System.InvalidCastException 未被用户代码处理 指定的演员表无效为什么我不能将 e.CommandArgument 转换为 Guid?
【问题讨论】:
以下代码在运行时失败……
Dim Id As Guid = CType(e.CommandArgument, Guid)它抛出这个异常......
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))【讨论】:
我猜 e.CommandArgument 是一个字符串,它不能通过 cast 转换为 Guid。可以从字符串创建 Guid:
在 C# 中:
Guid DeleteId new Guid(e.CommandArgument);
我不太了解 VB.NET 语法,但我猜一下:
Dim DeleteId As Guid = New Guid(e.CommandArgument);
【讨论】:
消息“转换无效”表明其中一个值的数据类型与数据库中的数据类型不匹配。您可以在设置 DeleteId 值的行上放置一个断点并查看 Guid 的样子吗?然后,您可以将其与您在数据库中看到的 DogId 进行比较。我怀疑你会在那里发现你的数据类型问题。
【讨论】:
您的错误与 LINQ to SQL 无关...这是一个转换错误。使用“新的 Guid(e.CommandArgument)”。
【讨论】: