ASP.NET使用参数在SQL Server数据库中保存空日期值
我有一个web表单应用程序,它允许更新数据库列。其中一个数据库列是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(
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;
好极了谢谢你的帮助,太棒了!谢谢你的帮助。