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.