今天早些时候锁定Visual Studio 2010后,包含嵌套With语句的代码段不再有效,并且锁定,我必须使用任务管理器来终止VS-2010。
我有一段代码如下:
With cmd ' OleDbCommand object
With .Parameters '<------- locks up when executing this line
.AddWithValue("@Parm1", Parm1Value)
.AddWithValue("@Parm2", Parm2Value)
' Etc.
End With
.ExecuteNonQuery()
End With
这很好,直到VS早先锁定。我不得不从目录中删除SUO文件,以便VS在尝试打开我之前打开的文档时不会抱怨。但随后这个嵌套的With语句停止了工作。
但是,以下两个代码的变体可以正常工作:
With cmd
With cmd.Parameters '<--- with cmd explicitly specified
.AddWithValue("@Parm1", Parm1Value)
.AddWithValue("@Parm2", Parm2Value)
' Etc.
End With
.ExecuteNonQuery()
End With
和
cmd.Parameters.AddWithValue("@Parm1", Parm1Value)
cmd.Parameters.AddWithValue("@Parm2", Parm2Value)
cmd.ExecuteNonQuery()
利用外部With语句的任何嵌套With语句都以相同的方式失败(即不必与OleDb对象一起)我做了一个小的测试项目,在表单对象上执行了With,并且嵌套了With on一个子对象...相同的结果:它被锁定了。
我运行VS-2010安装进行修复,它仍然以这种方式运行。重新启动也无法解决问题。
我可以用不同的方式编写代码,但我不应该这样做,其次,谁知道当VS第一次崩溃时还有什么搞砸了?!!
我希望不必完全卸载/重新安装VS-2010。
还有其他人看过这个问题吗?
答案 0 :(得分:0)
当VS2010崩溃时,你正在研究这个解决方案/项目吗?
您在删除SUO文件之前和/或之后是否遇到了项目文件恢复选项?
作为一个兴趣点,使用with语句测试初始化Anonymous对象:
Dim cust0 = New With {.Name = "Toni Poe", .City = "Louisville"}
你试过'干净'&amp; “重建”您的解决方案。
尝试创建新的解决方案/项目并在新的OleDbCommand对象上测试嵌套的with语句。
尽管如此,干净安装VS2010可能会让您感觉更好。我怀疑你的解决方案是腐败的,而不是vs2010。