c#数据库保存添加换行到datetime

本文关键字:datetime 换行 添加 数据库 保存 | 更新日期: 2023-09-27 18:11:02

我正面临一个问题,其中ExecuteScalar正在发送一些datetime参数到数据库,我得到一个错误

将nvarchar强制转换为datetime无效

SQL Server Profiler显示datetime在日期中间有一个换行符,如下所示:

@inspection_start='2015-09-10 /n
00:00:00',

我检查了所有的数据类型都是正确的。

有谁知道是什么导致这个问题的吗?

谢谢

c#数据库保存添加换行到datetime

首先,

将nvarchar强制转换为datetime无效

告诉我你正在发送string而不是DateTime,如果你在SQL中声明@inspection_startDateTime,那么这应该适用于你:

// oldInspection_start is the var you already have (inspection_start) 
// with the line break ('n)
string oldInspection_start = "2015-09-10 /n 00:00:00"; 
string newInspection_start = oldInspection_start.Replace("/n", string.Empty);
yourCommand.Parameters.AddWithValue("@inspection_start", Convert.ToDateTime(newInspection_start));

你的代码应该是类似的,所以只要改变它,你想

如果它的数据类型是字符串,那么尝试删除/替换''n'字符。

您可以粘贴代码如何传递参数和调用ExeculteScalar方法。

我的变量声明

public DateTime? InspectionStart

这就是我如何调用过程

int newid = 0;
            try
            {
                Database db = DatabaseFactory.CreateDatabase();
                newid = (int)db.ExecuteScalar(
                    StoredProcedures.SaveInspectionPortNewReport,
                    inspection.InspectionStart)
             }

,这是我在sql

中接收它的方式
ALTER PROCEDURE [dbo].[inspection_port_new_reports_save](
 @inspection_start datetime
)

类型肯定是日期时间。调试器显示日期时间,因为它应该是。只是一个简单的日期时间