0

在今天早些时候锁定 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 对象结合使用)对象...相同的结果:它被锁定了。

我运行了 VS-2010 安装来进行修复,它仍然以这种方式运行。重新启动也不能解决问题。

我可以用不同的方式编写代码,但我不应该这样做,其次,谁知道当 VS 第一次崩溃时还有什么问题?!

我希望不必完全卸载/重新安装 VS-2010。

有没有其他人看到这个问题?

4

1 回答 1

0

当 VS2010 崩溃时,您是否正在处理此解决方案/项目?

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

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

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

您是否尝试过对您的解决方案进行“清洁”和“重建”。

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

不过,干净安装 VS2010 可能会让您感觉更好。我怀疑您的解决方案已损坏,而不是 vs2010。

于 2012-08-07T00:26:38.640 回答