アプリケーションで動作が停止しました。ストアド プロシージャをテストしたところ、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;
}
アップデート:
どうでも。これは実際に機能します。これは私のテスト コードであり、私の実際のコードが行うと思っていたことです。しかし、実際のコードで何かを見落としていたと思います。