【问题标题】:ASP.NET saving empty date value in SQL Server database with parametersASP.NET 使用参数在 SQL Server 数据库中保存空日期值
【发布时间】:2013-01-03 16:14:05
【问题描述】:

我有一个允许更新数据库列的 Web 表单应用程序。数据库列之一是 Finish Date,它在 SQL Server 数据库中属于 date 数据类型。

我使用带有参数和文本框的 SQL 查询来提供完成日期的新值。

这是从网格中的文本框中获取日期值的代码:

TextBox tFD = (TextBox)grdProjectUpdate.Rows[e.RowIndex].Cells[11].FindControl("proFDTextBox");

然后我使用一个参数:

cmd.Parameters.Add("@proFD", SqlDbType.Date).Value = tFD.Text.Trim();

使用此 SQL 语句更新值:

UPDATE PMSprojects SET proFD = @proFD ,...    

只要提供了实际日期,此解决方案就可以正常工作。但是,它不保存空值。如果我提供一个空字符串,它将被转换为1900-01-01 日期,即使数据库中的列允许空值。

我该如何解决这个问题并将 null 保存到数据库中?

【问题讨论】:

    标签: asp.net sql-server date webforms null


    【解决方案1】:

    你必须围绕这个编写代码来处理,并在值为空时传递DbNull.Value

    cmd.Parameters.Add("@proFD", SqlDbType.Date).Value = (tFD.Text.Trim().Length > 0) ? (object)tFD.Text.Trim() : DbNull.Value;
    

    【讨论】:

    • 太棒了!感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多