2

アプリケーションで動作が停止しました。ストアド プロシージャをテストしたところ、3 行が返されました (大きすぎてここに再投稿できません)。Visual Studio の出力では、後で次のように表示されます。

(1 row(s) affected)
(3 row(s) returned)
@RETURN_VALUE = 0
Finished running [dbo].[GetCaseDocumentFile].

dtResult というデータテーブルに入れられないのはなぜですか? コマンド sqlDataAdapter.Fill(dtResult) で実行できます。代わりに、デバッグ モードで見ると {} が表示されます。

string connectionString = @"Data Source=34.56.55.251;Initial Catalog=DBXXX;User ID=xx;Password=XXXXXXXX;";
string queryString = "GetCaseDocumentFile";

using (SqlConnection connection = new SqlConnection(connectionString))
            {
    SqlCommand command = new SqlCommand(queryString, connection);
    command.CommandType = System.Data.CommandType.StoredProcedure;
    command.Parameters.AddWithValue("@key", 200012);

    connection.Open();

    // Works! Three lines are returned.
    SqlDataReader reader = command.ExecuteReader();
    try
    {
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }
    }
    finally
    {
        reader.Close();
    }

    // Does not work! dtResult remains empty. {}
    DataTable dtResult = new DataTable();
    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(command);
    sqlDataAdapter.Fill(dtResult);

    DataTable result = dtResult;
}

アップデート:

どうでも。これは実際に機能します。これは私のテスト コードであり、私の実際のコードが行うと思っていたことです。しかし、実際のコードで何かを見落としていたと思います。

4

1 に答える 1

2

手順にカウントを設定していませんか?
NoCountをオンに設定します。

于 2011-04-04T11:52:14.543 に答える