c# - 字符串未被识别为 Sql 服务器的有效 DateTime C#

标签 c# sql-server

我正在将日期时间值从 C# 传递到 SQL Server SP。如果我传递格式 dd-MM-yyyy 那么它工作正常但不会从 SP 返回任何值,即使有该日期的记录。如果我以 MM-dd-yyyy 格式运行 SP,则它会返回错误“将数据类型 nvarchar 转换为 datetime 时出错。”。 SP是

执行 usp_detData '22/12/2012 00:00:00', '31/12/2013 23:59:59' --- 错误

执行 usp_detData '12/22/2012 00:00:00', '12/31/2013 23:59:59' --- 工作正常

你能告诉我解决方案吗

最佳答案

I am passing a datetime value from C# to SQL Server SP.

我相信您是通过字符串连接传递的。如果你使用 SqlParameter 会更好DateTime 类型并让服务器处理它。

using (SqlCommand cmd = new SqlCommand(" usp_detData", conn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@StartDate", DateTime.Now.AddDays(-10));
    cmd.Parameters.AddWithValue("@EndDate", DateTime.Now);
    SqlDataReader dr = cmd.ExecuteReader();
    .....
}

还可以考虑使用 using使用实现 IDisposable 的对象阻止您的代码.例如。 SqlCommand, SqlConnection, SqlDataReader

关于c# - 字符串未被识别为 Sql 服务器的有效 DateTime C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14686371/

相关文章:

c# - 具有通用对象的 WebAPI CreateResponse

c# - "The * field is required"当EF对象已经有字段

sql-server - SQL Server 查询结果末尾有空格

sql - AWS MS SQL 创建表

C# 和 SQL Server : ExecuteNonQuery returning -1, 何时更新有效?

c# - 找不到方法 : 'System. 字符串 RazorEngine.Templated.ITemplate.Run

c# - 使用 DotNetZip 打开拆分的 Zip 文件

java - 在 Windows 服务器上运行的 Java 应用程序能否通过 Windows 身份验证连接到 SQL Server

c# - WCF 数据服务和映射的 DTO

sql-server - 是否可以在 sql server 运行时安装复制?