0

Azure SQL Server 上の複数のデータベースでクエリを実行する際に問題が発生しています。これは、実行後にクエリから DataTable を返すために作成した関数です。この関数は、データベース名を文字列として受け取り、実行するクエリとともに接続文字列に挿入します。

関数は一度実行すると正常に動作し、意図したとおりに返された行が取り込まれた DataTable を返しますが、「foreach」ステートメントを使用して関数を呼び出すと (データベース名のリストを反復処理)、タイムアウト エラーが発生するか、ログインに失敗しました。エラー。

これに関する助けをいただければ幸いです。

  public static DataTable runQuery(String db, String query)
  {

    using (SqlConnection con = new SqlConnection("Data Source=server.database.windows.net;Initial Catalog=" + db + ";User ID=user@server;Password=password"))
    {

        con.Open();

        using (DataTable dt = new DataTable())
        {

            try
            {

                SqlCommand cmd = new SqlCommand(query, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                da.Fill(dt);

                cmd.Dispose();
                da.Dispose();

            }

            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }

            return dt;
        }

    }
}
4

2 に答える 2

0

追加cmd.CommandTimeout = 0

try
            {

                SqlCommand cmd = new SqlCommand(query, con);
                cmd.CommandTimeout = 0;
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                da.Fill(dtt);

                cmd.Dispose();
                da.Dispose();

            }
于 2013-02-27T11:45:18.133 に答える
0

System.Threading.Thread.Sleepforeach ブロック内に追加してみてください。

于 2013-02-27T11:19:43.503 に答える