ASP.NET MVC:无法从SQL数据库检索小时,分钟,秒,它们始终显示12:00

问题描述 投票:0回答:1

[Note:我也正在寻找一种方法来避免发生AddWithParameter SQL注入风险,但是我不确定如何使用DotNetNuke来做到这一点,因此这是此问题的第二个问题。

我将日期作为C#DateTime存储到SQL数据库datetime列中。检索该日期时,我无法获取hh:mm:ss信息,它始终显示12:00,但是正确检索并显示了日,月,年。

这是我在SQL中插入日期的方式:

string sqlDateFormat = "yyyy-MM-dd HH:mm:ss.fff";               
string sqlInsertString = String.Format("INSERT INTO TABLE_NAME (Date_Column_Name) VALUES ({0})", thisDate?.ToString(sqlDateFormat)};

using (IDataContext ctx = DataContext.Instance())
{
    try
    {                  
        ctx.Execute(System.Data.CommandType.Text, 
        sqlInsertString);      
        success = true;                                                     
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.Message);
    }
}

这是我检索表数据的方式:

using (IDataContext ctx = DataContext.Instance())
{
    string sqlString = @"SELECT Date_Column_Name FROM Table_Name  WHERE ID = " + paramId;

    try
    {
        myTableDates = ctx.ExecuteQuery<TableModel> (System.Data.CommandType.Text, sqlString);
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.Message);
    }
}

这是我尝试在视图中显示的方式:

<tbody>
    @foreach (TableModel tm in Model.AllTablesDates)
    {
        var dateVar = tm.Date == null ? "N/A" : 
        tm.Date.Value.ToString("dd-MMM-yyyy h:mm tt");

        <tr>
            <td data-title="Day">@dateVar</td>                        
        </tr>
    }
</tbody>
c# sql asp.net-mvc datetime dotnetnuke
1个回答
0
投票

基于this post,将您的陈述更改为以下内容:

ctx.Execute("INSERT INTO TABLE_NAME (Date_Column_Name)VALUES (@0)", thisDate);
© www.soinside.com 2019 - 2024. All rights reserved.