-1

I use Access database. This error wasn't occurring 30 minutes ago.

ERROR is:

Data type mismatch in criteria expression.

OleDbConnection con = new OleDbConnection(Utility.GetConnection());
        con.Open();
        OleDbCommand cmd2 = new OleDbCommand("INSERT INTO Temsilci(isin_adi,isin_tanimi,verildigi_tarih,teslim_tarihi,sorumlu_marka,sorumlu_ajans,revize,Temsilci_isverenid)
            values (@isinadi,@isintanimi,@vertarih,@testarih,@smarka,@sajans,@revize,@temsid)", con);
        cmd2.Parameters.Add("isintanimi", txtMarkaAdi.Text);
        cmd2.Parameters.Add("isinadi", txtisAdi.Text);
        cmd2.Parameters.Add("smarka", txtMarkaTemsilcisi.Text);
        cmd2.Parameters.Add("sajans", txtAjansTemsilcisi.Text);
        cmd2.Parameters.Add("revize", txtSorumluKisiler.Text);
        cmd2.Parameters.Add("vertarih", txtverilisTarihi.Text);
        cmd2.Parameters.Add("testarih", txtTeslimTarihi.Text);
        cmd2.Parameters.Add("temsid", Session["UserID"]);
        cmd2.ExecuteNonQuery();
        con.Close();    

My database columns are:

ID = AutoNumber
isin_adi = Short Text
isin_tanimi = Long Text
verildigi_tarih= Date/Time
teslim_tarihi=Date/Time
sorumlu_marka = Short Text
sorumlu_ajans=Short Text
personel_id=Number
revize=Short Text
is_durum=Short Text
Temsilci_isverenid=Number
mjwills
  • 23,389
  • 6
  • 40
  • 63
  • What is the **exact** value of `Session["UserID"]`? _Also **each** of textboxes._ – mjwills Jan 06 '19 at 01:44
  • 1
    Possible duplicate of [How to ensure dates are in correct format for OleDbCommand parameters?](https://stackoverflow.com/questions/16445119/how-to-ensure-dates-are-in-correct-format-for-oledbcommand-parameters) – mjwills Jan 06 '19 at 01:55
  • If you pass a bunch of strings to the database, it will complain if the columns are not string.. You should convert/parse all non-string parameters – Cleptus Jan 06 '19 at 02:02
  • I have changed the layout of your question slightly (mainly moving part of the query to the next line) to make it easier to spot the issue. – mjwills Jan 06 '19 at 21:02

1 Answers1

1

I Solved the problem. I realized the rank of parameters was not true. i change my code like that:

OleDbConnection con = new OleDbConnection(Utility.GetConnection());
        con.Open();
        OleDbCommand cmd2 = new OleDbCommand("INSERT INTO Temsilci(isin_adi,isin_tanimi,verildigi_tarih,teslim_tarihi,sorumlu_marka,sorumlu_ajans,revize,Temsilci_isverenid) values (@isinadi,@isintanimi,@vertarih,@testarih,@smarka,@sajans,@revize,@temsid)", con);
        cmd2.Parameters.Add("isinadi", txtisAdi.Text);
        cmd2.Parameters.Add("isintanimi", txtMarkaAdi.Text); 
        cmd2.Parameters.Add("vertarih", txtverilisTarihi.Text);
        cmd2.Parameters.Add("testarih", txtTeslimTarihi.Text);       
        cmd2.Parameters.Add("smarka", txtMarkaTemsilcisi.Text);
        cmd2.Parameters.Add("sajans", txtAjansTemsilcisi.Text);
        cmd2.Parameters.Add("revize", txtSorumluKisiler.Text);        
        cmd2.Parameters.Add("temsid", Session["UserID"]);
        cmd2.ExecuteNonQuery();
        con.Close(); 

after that i get error like this : You cannot add or change a record because a related record is required in table 'Personel'. And i remove the relationship from 2 tables. And now it works normally. I think access database have some bugs ,and even if code is correct, errors may accuired. So i will move my database to SQL from ACCESS i think. Thanks guys.