0

SQL サーバーへの非同期接続を書き込もうとしていますが、例外をキャッチして壁にぶつかっています。MSDN はそれについてあまり役に立ちませんでした。私の最初のアプローチは次のとおりです。

async Task dbConnAsync(SqlConnection conn)
    {
        try
        {
            await conn.OpenAsync(); //Here i get InvalidOperationException
        }
        catch (Exception ex)
        {
            MessageBoxResult result = System.Windows.MessageBox.Show(ex.Message);
        }
    }


    private async void ReadDB()
    {
            try
            {
                Task theTask = dbConnAsync(conn);
                await theTask;                  
            }.....
    }

そして2番目のもの:

private async void dbConnection()
    {
            try
            {
                 await conn.OpenAsync();               
            }.....
    }

そして、他の多くの試みの後、専門家に相談することにしたので、プログラムがサーバーに接続できないときに例外をキャッチするにはどうすればよいですか。

4

1 に答える 1

0

この例外は、接続がすでに開かれていることを示しています。おそらくconn.OpenAsync、完了するのを待たずに以前に呼び出した可能性があります。おそらくあなたはawait.

したがって、修正は例外をキャッチすることではなく、根本的な原因を排除することです。捕まえることは、症状を治療することです。

于 2013-03-09T20:33:47.017 に答える