在c#.net中调用存储过程

在c#.net中调用存储过程,.net,int,.net,Int,我编写了一个存储过程并在查询中执行,在MSSQL服务器上没有任何问题: 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 SELEC

我编写了一个存储过程并在查询中执行,在MSSQL服务器上没有任何问题:

 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中可能有问题,因为它在这个函数中只返回一行,但当我在查询中执行时,它返回3行

您通过UI传递的日期格式似乎有不同的格式。您能通过SQL事件探查器调试您的数据库吗?

您怎么知道它只返回一行?查看使用返回数据集的代码会很有帮助。另外,实际的存储过程查询也会很有用。我在mschart上使用这个数据源,它只显示charttimerange=1表示1天,因此在开始和结束之间有3天。您可以比较@return_值和ds中返回的行数?如果你是,那么这就是你的问题所在,liesI发现了问题所在。我的数据源有3行,但图表仅显示第一行。我们如何解决这个问题呢?日期并没有问题,过程也并没有问题,但当我从.net端调用它时,它并不能正常工作