将DateTime插入数据库

时间:2012-05-23 01:45:04

标签: asp.net sql datetime

我的SQL数据库中有一个DateTime字段,我想写一段时间,但是我该怎么做?

我想将它作为时间戳,所以当用户点击“添加”按钮时,它会将数据添加到其他字段,并将时间戳添加到DateTime字段中,但我不断收到以下错误

  

从字符串转换日期和/或时间时转换失败。

这是我在CS文件中的当前代码

insertSQL = "INSERT INTO Posts (TopicID, PostBody, PostDate, UserID)"
        + "VALUES ('" + topic + "', '" + newPostText + "', '" + DateTime.Now.ToString() + "', '" + User_ID + "')";

请注意我想尽可能多地显示时间信息。例如23/05/2012 10:58:00 a.m。

2 个答案:

答案 0 :(得分:4)

您的实施很容易SQL Injection。要解决此问题,请关注日期时间问题,使用参数 - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

这样的事情:

string commandText = "INSERT INTO Posts (TopicID, PostBody, PostDate, UserID)"
    + "VALUES (@Topic, @NewPostText, @PostDate, @UserID)";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(commandText, connection);
    command.Parameters.AddWithValue("@Topic", "My Topic");
    command.Parameters.AddWithValue("@NewPostText", "Post text goes here");
    command.Parameters.AddWithValue("@PostDate", dateObject);
    command.Parameters.AddWithValue("@UserID", "UserA");

    try
    {
        connection.Open();
        Int32 rowsAffected = command.ExecuteNonQuery();
    }
    catch (Exception)
    {
        // Handle Errors    
    }
}

答案 1 :(得分:-2)

你要求strtotime()?

<?php
$d = date('y-m-d');
echo date('d M Y',strtotime( $d ));
echo "<br>";
echo date('Y-m-d H:i:s'); ?>
叹息,我的错,这是为了Php~