Arkadaşlar merhaba,

C#'a merak saldım ve öğrenmek amaçlı bir otomasyon hazırlıyorum. Otomasyonda form üzerinden girdiğim verileri, veritabanına kayıt ederken hata alıyorum. Hata:

Alıntı
Data type mismatch in criteria expression.
Sanırım hata form üzerindeki tarihlerden kaynaklı.


Form üzerindeki tarih alan şekli:


Tarihleri datetimepicker olarak oluşturdum ve Kayıt Bitiş Tarihi'nden tarih seçtiğimde Ücret label alanına gün sayısı ve ücreti form üzerinden hesaplattım. Kodları:

private void dtkayitbit_ValueChanged(object sender, EventArgs e)
        {
            int ucret;
            DateTime giristarihi = Convert.ToDateTime(dtkayitbas.Text);
            DateTime cikistarihi = Convert.ToDateTime(dtkayitbit.Text);
            TimeSpan gunsayisi = cikistarihi - giristarihi;
            tbgunsayisi.Text = gunsayisi.TotalDays.ToString() + " Gün";
            labelgunsayisi.Text = gunsayisi.TotalDays.ToString();
            ucret = Convert.ToInt32(labelgunsayisi.Text) * 4;
            tbucret.Text = ucret.ToString() + " TL";
        }

Kaydet butonuna tıkladığımda ise veri girdirme kodlarım:

private void button1_Click(object sender, EventArgs e)
        {
            baglanti = new OleDbConnection("Provider=Microsoft.ACE.OleDb.12.0;Data Source=veritabani.accdb");
            komut = new OleDbCommand("insert into Musteriler(tcno,ad,soyad,adres,eposta,telefon,hocaid,ucret,kayitbaslamatar,kayitbitistar,cinsiyet,dogumtar,boy,kilo,hastalik,sporturu) values (@tcno,@ad,@soyad,@adres,@eposta,@telefon,@hocaid,@ucret,@kayitbaslamatar,@kayitbitistar,@cinsiyet,@dogumtar,@boy,@kilo,@hastalik,@sporturu)",baglanti);
            komut.Parameters.AddWithValue("@tcno", Convert.ToInt32(tbtc.Text));
            komut.Parameters.AddWithValue("@ad", tbad.Text);
            komut.Parameters.AddWithValue("@soyad", tbsoyad.Text);
            komut.Parameters.AddWithValue("@adres", tbadres.Text);
            komut.Parameters.AddWithValue("@eposta", tbeposta.Text);
            komut.Parameters.AddWithValue("@telefon", tbtel.Text);
            komut.Parameters.AddWithValue("@hocasi", tbhocaad.Text);
            komut.Parameters.AddWithValue("@ucret", tbucret.Text);
            komut.Parameters.AddWithValue("@kayitbaslamatar", dtkayitbas.Value);
            komut.Parameters.AddWithValue("@kayitbitistar", dtkayitbit.Value);
            komut.Parameters.AddWithValue("@cinsiyet", cbcinsiyet.Text);
            komut.Parameters.AddWithValue("@dogumtar", tbyas.Text);
            komut.Parameters.AddWithValue("@boy", tbboy.Text);
            komut.Parameters.AddWithValue("@kilo", tbkilo.Text);
            komut.Parameters.AddWithValue("@hastalik", tbhasta.Text);
            komut.Parameters.AddWithValue("@sporturu", tbsporturu.Text);
            baglanti.Open();
            komut.ExecuteNonQuery();
            MessageBox.Show("Test");
            baglanti.Close();
        }

Veritabanı tasarımım:



Nerede hata yaptım araştırmama rağmen çözüm bulamadım.