当日期时间选择器复选框未选中 C# 和 SQL 服务器时,如何在日期时间列中插入数据库 00/00/0000?

how to insert to database 00/00/0000 in datetime column when datetime picker checkbox not checked C# and SQL SERVER?

如果复选框 属性 未选中,我希望能够插入数据库 00/00/0000 或任何其他值,但 datetimepicker 的今天日期值除外,我尝试了来自该站点的多个解决方案,但是它总是插入今天的日期时间值,即使未选中复选框也是如此。

这是保存按钮代码:

private void btnSave_Click(object sender, EventArgs e)
        {
            
            if (dateOpened.Checked==true)
            {
                dateOpened.Enabled = true;
                dateOpened.Format = DateTimePickerFormat.Short;
             
            }
            else
            {
                dateOpened.Enabled = false;
                dateOpened.Format = DateTimePickerFormat.Custom;
                dateOpened.CustomFormat = "00/00/0000";
            }

            if (dateFinished.Checked== true)
            {
                dateFinished.Enabled = true;
                dateFinished.Format = DateTimePickerFormat.Short;
            }
            else
            {
                dateFinished.Enabled = false;
                dateFinished.Format = DateTimePickerFormat.Custom;
                dateFinished.CustomFormat = "00/00/0000";
            }

            if (add==1)
            {
                test.ADD_INVENTORIES(Convert.ToInt32(comboTest.SelectedValue),txtLotNo.Text,
                                     Convert.ToInt32(txtNoOfTests.Text),
                                     DateTime.Parse(dateReceived.Value.ToString()),
                                     DateTime.Parse(dateExpiry.Value.ToString()),
                                     DateTime.Parse(dateOpened.Value.ToString()),
                                     txtReceivedfrom.Text,
                                     DateTime.Parse(dateFinished.Value.ToString()),
                                     
                                     Convert.ToInt32(comboDepts.SelectedValue),
                                     Convert.ToInt32(txtRemaning.Text),
                                     Convert.ToInt32(comboCompany.SelectedValue),
                                     Convert.ToInt32(comboType.SelectedValue));

                MessageBox.Show("Stock Added Successfully", "New Stock", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cleardata();
            }
}

这是存储过程代码:

CREATE proc [dbo].[ADD_INVENTORIES]
@testid int,
@lot_no nvarchar(20),
@No_Of_Tests int,
@Received_Date datetime,
@Expiry_Date datetime,
@Opened_Date datetime,
@Received_From nvarchar(50),
@Finished_Date datetime,
@deptid int,
@Remaining_Tests int,
@Company_id int,
@reagent_type int



as 
INSERT INTO [dbo].[Inventory_Details]
           ([testid]
           ,[lot_no]
           ,[No_Of_Tests]
           ,[Received_Date]
           ,[Expiry_Date]
           ,[Opened_Date]
           ,[Received_From]
           ,[Finished_Date]
           ,[deptid]
           ,[Remaining_Tests]
           ,[Company_id]
           ,[reagent_type])
     VALUES
           (@testid
           ,@lot_no
           ,@No_Of_Tests
           ,@Received_Date
           ,@Expiry_Date
           ,@Opened_Date
           ,@Received_From
           ,@Finished_Date
           ,@deptid
           ,@Remaining_Tests
           ,@Company_id
           ,@reagent_type)

如果未选中日期时间选择器的复选框,我想将日期时间列(Opened_Date 和 Finished_Date)插入数据库 00/00/0000。但是它插入了今天的日期和时间,我不知道哪里遗漏了,也许我需要更改插入方式,但这种方式不正确:

DateTime.Parse(dateOpened.Value.ToString()),
DateTime.Parse(dateFinished.Value.ToString()),

如何解决这个问题?

我改变了处理这种情况的方式,我从插入语句中删除了列Opened_Date和Finished_Date,因为我先不使用它,我需要在以后使用时填写这些日期这些产品到时候我将创建更新存储过程以在使用产品时更新打开日期并在产品完成时输入完成日期。

CREATE proc [dbo].[ADD_INVENTORIES]
@testid int,
@lot_no nvarchar(20),
@No_Of_Tests int,
@Received_Date datetime,
@Expiry_Date datetime,
@Received_From nvarchar(50),
@deptid int,
@Remaining_Tests int,
@Company_id int,
@reagent_type int



as 
INSERT INTO [dbo].[Inventory_Details]
           ([testid]
           ,[lot_no]
           ,[No_Of_Tests]
           ,[Received_Date]
           ,[Expiry_Date]
           ,[Received_From]
           ,[deptid]
           ,[Remaining_Tests]
           ,[Company_id]
           ,[reagent_type])
     VALUES
           (@testid
           ,@lot_no
           ,@No_Of_Tests
           ,@Received_Date
           ,@Expiry_Date
           ,@Received_From
           ,@deptid
           ,@Remaining_Tests
           ,@Company_id
           ,@reagent_type)