Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET使用参数在SQL Server数据库中保存空日期值_Asp.net_Sql Server_Date_Webforms_Null - Fatal编程技术网

ASP.NET使用参数在SQL Server数据库中保存空日期值

ASP.NET使用参数在SQL Server数据库中保存空日期值,asp.net,sql-server,date,webforms,null,Asp.net,Sql Server,Date,Webforms,Null,我有一个web表单应用程序,它允许更新数据库列。其中一个数据库列是Finish Date,它在SQL Server数据库中属于Date数据类型 我使用带有参数和文本框的SQL查询为完成日期提供新值 这是一个代码,可从网格中的文本框中获取日期值: TextBox tFD = (TextBox)grdProjectUpdate.Rows[e.RowIndex].Cells[11].FindControl("proFDTextBox"); 然后我使用一个参数: cmd.Parameters.Add(

我有一个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
date,即使数据库中的列允许空值


如何解决此问题并将null保存到数据库?

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

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

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

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

好极了谢谢你的帮助,太棒了!谢谢你的帮助。