以下代码在运行时失败...
Dim Id As Guid = CType(e.CommandArgument, Guid)
它引发了这个异常......
System.InvalidCastException was unhandled by user code Specified cast is not valid
为什么我不能将 e.CommandArgument 投射为Guid?
答案 0 :(得分:2)
尝试:
Dim DeleteId As Guid = New Guid(Convert.ToString(e.CommandArgument))
这有效......
Dim DeleteId As Guid = New Guid(DirectCast(e.CommandArgument, String))
答案 1 :(得分:2)
我猜测e.CommandArgument是一个字符串,不能通过强制转换到Guid。可以从字符串创建Guid:
在C#中:
Guid DeleteId new Guid(e.CommandArgument);
我真的不知道VB.NET语法,但我会猜测:
Dim DeleteId As Guid = New Guid(e.CommandArgument);
答案 2 :(得分:1)
消息“强制转换无效”表示其中一个值的数据类型与数据库中的数据类型不匹配。你能在设置DeleteId值的行上放一个断点,看看Guid是什么样子的吗?然后,您可以将它与您在DogId数据库中看到的内容进行比较。我怀疑你会在那里找到你的数据类型问题。
答案 3 :(得分:1)
您的错误与LINQ to SQL无关......这是一个转换错误。使用“new Guid(e.CommandArgument)”。