嵌套语句崩溃

时间:2012-08-02 20:14:17

标签: vb.net-2010

今天早些时候锁定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。

还有其他人看过这个问题吗?

1 个答案:

答案 0 :(得分:0)

当VS2010崩溃时,你正在研究这个解决方案/项目吗?

您在删除SUO文件之前和/或之后是否遇到了项目文件恢复选项?

作为一个兴趣点,使用with语句测试初始化​​Anonymous对象:

Dim cust0 = New With {.Name = "Toni Poe", .City = "Louisville"}

你试过'干净'&amp; “重建”您的解决方案。

尝试创建新的解决方案/项目并在新的OleDbCommand对象上测试嵌套的with语句。

尽管如此,干净安装VS2010可能会让您感觉更好。我怀疑你的解决方案是腐败的,而不是vs2010。