在c#.net中调用存储过程
我编写了一个存储过程并在查询中执行,在MSSQL服务器上没有任何问题:在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
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端调用它时,它并不能正常工作