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

注意:我也在寻找一种方法来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>


慕桂英4014372
浏览 90回答 1
1回答

叮当猫咪

基于这篇文章,将您的声明更改为以下内容:ctx.Execute("INSERT&nbsp;INTO&nbsp;TABLE_NAME&nbsp;(Date_Column_Name)VALUES&nbsp;(@0)",&nbsp;thisDate);
打开App,查看更多内容
随时随地看视频慕课网APP