C#插入日期时间失败

hem*_*ker 2 c# datetime smalldatetime

我有一个带有表的数据库,该表Fio_FinalSched又有一个名为FinalDatesmalldatetime 的列.我将日期字符串转换为DateTime类型:

DateTime theDate = Convert.ToDateTime("2010-01-05 23:50:00");
Run Code Online (Sandbox Code Playgroud)

然后我创建命令字符串:

string testCommand = "INSERT INTO Fio_FinalSched (FinalDate) Values ("+theDate+")";
Run Code Online (Sandbox Code Playgroud)

然后,将其转换为SQL命令:

SqlCommand myCommand = new SqlCommand(testCommand,conn);
Run Code Online (Sandbox Code Playgroud)

conndb连接在哪里.最后,我执行命令:

myCommand.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

当我运行它,它到达执行行,然后给我错误:

Incorrect syntax near '11'.
Run Code Online (Sandbox Code Playgroud)

我试过用几种方法改变日期字符串的格式,但无济于事.是因为我的数据库想要一个smalldatetime类型而不是一个datetime类型?C#似乎没有smalldatetime我可以使用的类型.任何见解将不胜感激!

Chr*_*ken 7

您需要使用单引号将日期包装在SQL字符串文字中...

string testCommand = "INSERT INTO Fio_FinalSched (FinalDate) Values ('"+theDate+"')";
Run Code Online (Sandbox Code Playgroud)

或者使用参数..

string testCommand = "INSERT INTO Fio_FinalSched (FinalDate) Values (@myDate)";
cmd.Parameters.Add(new SqlParameter("@myDate", theDate));
Run Code Online (Sandbox Code Playgroud)