ストアド プロシージャを作成し、MSSQL Server で問題なくクエリを実行しました。
USE [DivaReportTest]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[PR_DAILY]
@Start = N'2012-10-16 01:00:00.000',
@Finish = N'2012-10-18 01:00:00.000',
@TimeRange = 1
SELECT 'Return Value' = @return_value
GO
ここで .NET でこのプロシージャを呼び出します。
private DataSet GetPR_DAILY(DateTime StartTime, DateTime FinishTime, int TimeRange)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("PR_DAILY", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Start", SqlDbType.DateTime).Value = StartTime;
cmd.Parameters.AddWithValue("@Finish", SqlDbType.DateTime).Value = FinishTime;
cmd.Parameters.AddWithValue("@TimeRange", SqlDbType.Int).Value = TimeRange;
da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
SqlDbType.Int では問題になる可能性があります。この関数では 1 行しか返されないためですが、クエリで実行すると 3 行が返されます。