How many columns do you have in the table? If it isn't four, and they aren't in the right order, you will get an error, even if the "extra" columns are marked as "nulls allowed". Try reworking the insert statement to list teh fields in teh order they will be set:
INSERT INTO customers (name, address, insurance_cost, record_date) VALUES (@name,@address,@insurance_cost,@record_date)
BTW: You shouldn't use the Add method - it was depreciated years ago, and may not be supported in future versions. Use AddWithValue instead:
da.InsertCommand = new SqlCommand("INSERT INTO customers (name, address, insurance_cost, record_date) VALUES (@name,@address,@insurance_cost,@record_date)", con);
da.InsertCommand.Parameters.AddWithValue("@name", textBox1.Text);
da.InsertCommand.Parameters.AddWithValue("@address", textBox2.Text);
da.InsertCommand.Parameters.AddWithValue("@insurance_cost", textBox3.Text);
da.InsertCommand.Parameters.AddWithValue("@record_date", dateTimePicker1.Value);