Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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
C# C数据库保存将换行符添加到datetime_C#_Sql Server_Tsql_Datetime - Fatal编程技术网

C# C数据库保存将换行符添加到datetime

C# C数据库保存将换行符添加到datetime,c#,sql-server,tsql,datetime,C#,Sql Server,Tsql,Datetime,我面临一个问题,ExecuteScalar正在向数据库发送一些日期时间参数,但我得到一个错误 对日期时间的强制转换nvarchar无效 SQLServer事件探查器显示DATETIME在日期中间有这样的行中断: @inspection_start='2015-09-10 /n 00:00:00', 我检查了所有数据类型是否正确 有人知道是什么导致了这个问题吗 谢谢如果其数据类型为字符串,请尝试删除/替换“\n”字符。你能粘贴你如何传递参数和调用ExecuteScalar方法的代码吗 对日期时间

我面临一个问题,ExecuteScalar正在向数据库发送一些日期时间参数,但我得到一个错误

对日期时间的强制转换nvarchar无效

SQLServer事件探查器显示DATETIME在日期中间有这样的行中断:

@inspection_start='2015-09-10 /n
00:00:00',
我检查了所有数据类型是否正确

有人知道是什么导致了这个问题吗


谢谢

如果其数据类型为字符串,请尝试删除/替换“\n”字符。你能粘贴你如何传递参数和调用ExecuteScalar方法的代码吗

对日期时间的强制转换nvarchar无效

告诉我您发送的是字符串而不是日期时间,如果您在SQL中将@inspection\u start声明为日期时间,那么这应该适用于您:

// 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));

您的代码应该是类似的,所以只需根据需要更改它即可

我的变量声明

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
)

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

可能共享一些代码…?好的,数据类型是正确的。您在nvarchar中有一个换行符。不会强制转换为datetime。数据类型不正确。您有datetime数据,但出于某些奇怪的原因,您将其作为字符串nvarchar传递,从而为您所描述的问题带来机会。如果您将此数据作为日期时间数据传递,则不会出现问题。@Damien_the_Unsiever OP声明向数据库发送一些日期时间参数。@Frisbee-是的,但它们显然不发送日期时间参数,因为它们不可能包含换行符。如果他们发送datetime参数,如datetimes,则它们将以二进制blob的形式出现。