Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
StoredProcess上的日期时间格式问题-C#ASP.NET x MS SQL Server 2014_C#_Asp.net_Asp.net Mvc_Datetime_Sql Server 2014 - Fatal编程技术网

StoredProcess上的日期时间格式问题-C#ASP.NET x MS SQL Server 2014

StoredProcess上的日期时间格式问题-C#ASP.NET x MS SQL Server 2014,c#,asp.net,asp.net-mvc,datetime,sql-server-2014,C#,Asp.net,Asp.net Mvc,Datetime,Sql Server 2014,从C#ASP.NET应用程序(MVC 3)运行SQL Server 2014存储过程时,我遇到了一个问题。 当我使用相同的参数手动运行此过程时,它会返回所有正确的结果。当从C#应用程序执行该过程时,“读取器”为空,没有任何数据。这似乎是DateTime格式的一个问题。我该怎么解决它? 代码如下: SQL: 您不应该将DateTime转换为字符串。只需按“原样”将其传递给存储过程。如果只需要日期部分,请使用date。请记住,不要更改数据类型 param2 = adapter.SelectComma

从C#ASP.NET应用程序(MVC 3)运行SQL Server 2014存储过程时,我遇到了一个问题。 当我使用相同的参数手动运行此过程时,它会返回所有正确的结果。当从C#应用程序执行该过程时,“读取器”为空,没有任何数据。这似乎是DateTime格式的一个问题。我该怎么解决它? 代码如下:

SQL:


您不应该将
DateTime
转换为字符串。只需按“原样”将其传递给存储过程。如果只需要日期部分,请使用
date
。请记住,不要更改数据类型

param2 = adapter.SelectCommand.Parameters.Add("@begin_date", SqlDbType.Date);
param2.Value = LastYear.Date;

param3 = adapter.SelectCommand.Parameters.Add("@end_date", SqlDbType.Date);
param3.Value = Today.Date;

尝试AddWithValue方法,该方法不太详细,可以动态识别参数的数据类型:

        adapter.SelectCommand.Parameters.AddWithValue("@client_code", cod_client);
        adapter.SelectCommand.Parameters.AddWithValue("@begin_date", LastYear.Date);
        adapter.SelectCommand.Parameters.AddWithValue("@end_date", Today.Date);

.ToString(“…”)
?不,你会有问题的。使用
SqlDbType.DateTime
和使用
Today.Date
如果您想删除时间部分您希望使用DateTime类型的参数,为什么要将完全合适的DateTime变量转换为字符串?我担心C#和SQL Server之间的DateTime格式不匹配,所以我尝试通过toString方法来管理格式。我尝试了这种方法,但它并没有像预期的那样工作。我担心日期时间格式不匹配。我使用这种方式已经很长时间了。请您解释一下哪里出错了?从C#应用程序执行时,该过程返回空。但是,当我使用相同的参数直接从SQL Server手动运行该过程时,会返回所有正确的行。我认为DateTime不是问题所在。请在表中插入输入日期时间以跟踪问题。是否可以使用强制转换并重试一次?与cast(c.date1 as date)>=cast(@begin_date as date)一样,这不能解决根本问题(以文本形式发送日期值),而且最重要的是。
param2 = adapter.SelectCommand.Parameters.Add("@begin_date", SqlDbType.Date);
param2.Value = LastYear.Date;

param3 = adapter.SelectCommand.Parameters.Add("@end_date", SqlDbType.Date);
param3.Value = Today.Date;
        adapter.SelectCommand.Parameters.AddWithValue("@client_code", cod_client);
        adapter.SelectCommand.Parameters.AddWithValue("@begin_date", LastYear.Date);
        adapter.SelectCommand.Parameters.AddWithValue("@end_date", Today.Date);