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',
我检查了所有的数据类型都是正确的。
有谁知道是什么导致这个问题的吗?
谢谢
首先,
将nvarchar强制转换为datetime无效
告诉我你正在发送string
而不是DateTime
,如果你在SQL中声明@inspection_start
为DateTime
,那么这应该适用于你:
// 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'字符。
我的变量声明
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
)
类型肯定是日期时间。调试器显示日期时间,因为它应该是。只是一个简单的日期时间