As an extension to Griffs answer, you could also simply check, if the given Text could be parsed as an DateTime... the user is free to choose the prefered format.
If it isn't a date, you could save an empty string.
[edit after response]
if(maskedTextBox1.Text == "") {
maskedTextBox1.Text = "##/##/#####";
}
cmd.Parameters.AddWithValue("@c_cheque_date", Convert.ToDateTime (maskedTextBox1 .Text ));
Ok... this is where youre code breaks...
You should rather check upfront if there's a valid DateTime in the maskedTextBox1 and store it in a variable.
D'you need some code or could you handle it from here on?