title: how to insert null date into access
body: <p>i want to insert null date into access database if user payment choose as cash then cheque date should be insert as empty for this im using masked textbox , i use debugger also but every time debugger going else condition and for that its giving me data mismatch exception here is im giving my insert code</p>
  
  <pre><code>string bank = txtbankname.Text;
              bank = "";
              string cheque = txtchequeno.Text;
              cheque = "";
  
  
              string billno = txtbillno.Text;
              billno = "";
  
  
              string codecreate = txtcodecreator.Text;
              codecreate = "";
  
              string connetionString = null;
              connetionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
              cnn.ConnectionString = connetionString;
  
              string SqlString = "Insert Into Billing([FormNo],[Date],[TruckNo],[Office_Code],[Party_Code],[Party_Code1],[Location],[Supplier],[Item],[Invoice_no],[Invoice_date],[Package],[Weight],[Invest_Amount],[Percentage],[Amount],[Total_Amount],[Payment_Amount],[Payment_Type],[Bank_Name],[Cheque_No],[Cheque_Date],[Bill_No],[Bill_Date],[Code_Create]) Values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
              using (cmd = new OleDbCommand(SqlString, cnn))
              {
                  cnn.Open();
                  cmd.CommandType = CommandType.Text;
                  cmd.Parameters.AddWithValue("@FormNo", txtformno.Text);
                  cmd.Parameters.AddWithValue("@Date", txtdate.Text);
                  cmd.Parameters.AddWithValue("@TruckNo", txttruck.Text);
                  cmd.Parameters.AddWithValue("@Office_Code", txtofficecode.Text);
                  cmd.Parameters.AddWithValue("@Party_Code", txtpartycode.Text);
                  cmd.Parameters.AddWithValue("@Party_Code1", txtpartycode1.Text);
                  cmd.Parameters.AddWithValue("@Location", txtlocation.Text);
                  cmd.Parameters.AddWithValue("@Supplier", txtsupplier.Text);
                  cmd.Parameters.AddWithValue("@Item", txtitem.Text);
                  cmd.Parameters.AddWithValue("@Invoice_no", txtinvoice.Text);
                  cmd.Parameters.AddWithValue("@Invoice_date", DateTime.Parse(txtmaskinvoice.Text));
                  cmd.Parameters.AddWithValue("@Package", txtpackage.Text);
                  cmd.Parameters.AddWithValue("@Weight", txtwieght.Text);
                  cmd.Parameters.AddWithValue("@Invest_Amount", Convert.ToDouble(txtinvestamount.Text));
                  cmd.Parameters.AddWithValue("@Percentage", txtpercentage.Text);
                  cmd.Parameters.AddWithValue("@Amount", Convert.ToDouble(txtamount.Text));
                  cmd.Parameters.AddWithValue("@Total_Amount", Convert.ToDouble(txttotalamount.Text));
                  cmd.Parameters.AddWithValue("@Payment_Amount", Convert.ToDouble(txtpaymentamount.Text));
                  cmd.Parameters.AddWithValue("@Payment_Type", txtpaymenttype.Text);
                  if (txtbankname.Text == "")
                  {
                      cmd.Parameters.AddWithValue("@Bank_Name", bank);
  
                  }
  
                  else
                  {
                      cmd.Parameters.AddWithValue("@Bank_Name", txtbankname.Text);
                  }
  
  
                  if (txtchequeno.Text == "")
                  {
                      cmd.Parameters.AddWithValue("@Cheque_No", cheque);
                  }
                  else
                  {
  
                      cmd.Parameters.AddWithValue("@Cheque_No", txtchequeno.Text);
                  }
  
  
                  DateTime chequeDate;
                  var value = (object)DBNull.Value;
                  if (DateTime.TryParseExact(txtmaskchequedate.Text,"dd/MM/yyyy",null,System.Globalization.DateTimeStyles.None, out chequeDate))
                  {
  
  
  
                      value = chequeDate;
                      cmd.Parameters.AddWithValue("@Cheque_Date", value);  
  
                  }
                  else
                  {
  
                      cmd.Parameters.AddWithValue("@Cheque_Date",(txtmaskchequedate.Text));  
  
                  }
  
                  if (txtbillno.Text == "")
                  {
                      cmd.Parameters.AddWithValue("@Bill_No", billno);
  
                  }
                  else
                  {
                      cmd.Parameters.AddWithValue("@Bill_No", txtbillno.Text);
  
  
                  }
  
                  DateTime BillDate;
                  var value1 = (object)DBNull.Value;
                  if (DateTime.TryParseExact(txtmaskbilldate.Text, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out BillDate))
                  {
  
  
  
                      value1 = BillDate;
                      cmd.Parameters.AddWithValue("@Bill_Date", value1);
  
                  }
                  else
                  {
  
                      cmd.Parameters.AddWithValue("@Bill_Date", (txtmaskbilldate.Text));
  
                  }
  
  
  
                  if (txtcodecreator.Text == "")
                  {
                      cmd.Parameters.AddWithValue("@Code_Create", codecreate);
                  }
                  else
                  {
                      cmd.Parameters.AddWithValue("@Code_Create", txtcodecreator.Text.ToString());
                  }
  
  
  
                  int n = cmd.ExecuteNonQuery();
                  cnn.Close();
                  if (n &gt; 0)
                  {
                      MessageBox.Show("Data Inserted Successfully", "Data Inserted ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                  }
  </code></pre>