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が以前にロックされるまで、これは問題なく実行されました。以前に開いたドキュメントを開こうとしたときにVSが文句を言わないように、ディレクトリからSUOファイルを削除する必要がありました。しかし、その後、このネストされた With ステートメントは機能しなくなりました。

ただし、コードの次の 2 つのバリエーションは問題なく動作します。

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"}

ソリューションで「クリーン」と「再構築」を試してください。

新しいソリューション/プロジェクトを作成し、ネストされた with ステートメントを新しい OleDbCommand オブジェクトでテストしてみてください。

ただし、VS2010 をクリーン インストールすると、おそらく気分が良くなるでしょう。vs2010ではなく、ソリューションが破損していると思われます。

于 2012-08-07T00:26:38.640 に答える