0

我有一个允许更新数据库列的 Web 表单应用程序。数据库列之一是SQL Server 数据库Finish Date中的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 保存到数据库中?

4

1 回答 1

3

您必须围绕此编写代码来处理,并DbNull.Value在值为 null 时传递。

cmd.Parameters.Add("@proFD", SqlDbType.Date).Value = (tFD.Text.Trim().Length > 0) ? (object)tFD.Text.Trim() : DbNull.Value;
于 2013-01-03T16:16:22.640 回答