1

DataTable オブジェクトを返すいくつかのクエリを実行する必要があります。開発をスピードアップするために、クエリ文字列を引数としてデータセットを返すプライベート メソッドを作成しました。

メソッドは次のとおりです。

private DataTable getDataTable(string query)
    {
        DataTable dt = new DataTable();
        SqlDataAdapter DA = new SqlDataAdapter(query, conn);
        try
        {
            iStatusIndicator.SetBusy(true);
            iStatusIndicator.SetStatus("executing query" + query);
            DA.Fill(dt);
        }
        catch (Exception ex)
        {
            ...
        }
        iStatusIndicator.SetBusy(false);
        iStatusIndicator.SetStatus("");
        return dt;
    }

プロシージャは例外をスローしませんが、DataTable dt は常に null です。SQLコマンドプロンプトでクエリ文字列を直接実行しようとしましたが、期待どおりにデータが返されるため、何が問題なのかわかりません。

誰かが原因を説明し、クエリ文字列を受け取って DataTables を返すための修正またはより良い方法を提案してくれたら、とても感謝しています。

ありがとうございました

4

2 に答える 2

0
private static DataSet SelectRows(DataSet dataset,
    string connectionString,string queryString) 
{
    using (SqlConnection connection = 
        new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(
            queryString, connection);
        adapter.Fill(dataset);
        return dataset;
    }
}
于 2010-09-24T22:01:49.883 に答える
0

あなたのキャッチブロックには何がありますか?ひょっとして、return または exit サブを行うものはありますか? それが、この関数が何も返さないことを確認できる唯一の方法のようです(つまり、関数は「return dt;」行に到達していません

于 2010-09-24T23:10:42.187 に答える