从c#中插入DateTime到Sql Server 2008

本文关键字:Sql Server 2008 DateTime 插入 | 更新日期: 2023-09-27 18:17:31

我已经尝试了2个多小时了,所以任何帮助都是非常感谢的

  public void setAppointment(int studentID, DateTime appt)
    {
        connection.Open();
        string sqlStatement3 = "UPDATE dbo.students SET appointmentDate = '" + appt.Date.ToString("yyyy-MM-dd HH:mm:ss") + "' WHERE ID = " + studentID + ";";
        OleDbCommand updateCommand = new OleDbCommand(sqlStatement3, connection);            
        updateCommand.ExecuteNonQuery();
        connection.Close();
    }

这基本上就是在sql server表中插入一个日期时间,保持相同的月份和日期格式,以避免区域设置的阻碍。

唯一的问题是时间仍然是00:00:00。即使当我调试代码时,'appt'显示28/06/2013 09:30:00

从c#中插入DateTime到Sql Server 2008

try below

 public void setAppointment(int studentID, DateTime appt)
        {
            connection.Open();
            string sqlStatement3 = "UPDATE dbo.students SET appointmentDate = ? WHERE ID = ?";
            OleDbCommand updateCommand = new OleDbCommand(sqlStatement3, connection);
            updateCommand.Parameters.AddWithValue("@p1", appt);
            updateCommand.Parameters.AddWithValue("@p2", studentID);
            updateCommand.ExecuteNonQuery();
            connection.Close();
        }

但是!

你说它是sql server,但为什么你使用OleDbCommand ?

SQL server

public void setAppointment(int studentID, DateTime appt)
{
    using (SqlConnection con = new SqlConnection(connectionString))
    using (SqlCommand cmd = con.CreateCommand())
    {
        cmd.CommandText = "UPDATE dbo.students SET appointmentDate = @appointmentDate WHERE ID = @ID";
        con.Open();
        cmd.Parameters.AddWithValue("@appointmentDate", appt);
        cmd.Parameters.AddWithValue("@ID", studentID);
        cmd.ExecuteNonQuery();
    }
}

第5行。把

...  appt.Date.ToString(...

... appt.ToString(...

我希望你已经从以前的帖子解决了你的问题,我同意SQL语句与参数一起使用。

如果你有一个应用程序日期时间格式是固定的,那么硬编码是没有害处的,但是从你的web获取日期时间格式将是很好的代码。配置文件。这将有助于您的代码在整个项目中保持一致。

代替

ToString (yyyy-MM-dd HH: mm: ss)

ToString (ConfigValue)

太晚了,但是对于您的问题:试试下面的代码。

public void setAppointment(int studentID, DateTime appt)
        {
connection.Open();
    string sqlStatement3 = "UPDATE dbo.students SET appointmentDate = '" + "CONVERT(datetime, '" + appt.Date.ToString("yyyy-MM-dd HH:mm:ss")  + "', 103)" + "' WHERE ID = " + studentID + ";";
    OleDbCommand updateCommand = new OleDbCommand(sqlStatement3, connection);            
    updateCommand.ExecuteNonQuery();
    connection.Close();
}