簡體   English   中英

我收到此類型錯誤:條件表達式中的數據類型不匹配

[英]I got this type error:Data type mismatch in criteria expression

我使用C#將數據插入訪問中,並遇到這種類型的錯誤。 我不認為這是類型錯誤。

我的代碼如下:

        OleDbConnection oleDbConn = new OleDbConnection();
        oleDbConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\fgao16\Dropbox\lab\website\mydatabase.mdb;User Id=admin;Password=;";
        oleDbConn.Open();
        string creattable = "create table mytable2([ID] char(50),[Radiologist Name] char(50),[Interesting Cases Folder] char(50),[Procedure] char(50),[Ordering Physician] char(50),[Procedure Date] char(50),[Indications] char(50),[FieFindings] varchar(255),primary key([ID]))";
        OleDbCommand oComm = new OleDbCommand(creattable, oleDbConn);
        oComm.ExecuteNonQuery();

        //string strInsertString = "INSERT INTO Table1 (ID,fCollumn2) VALUES (@strCollumn1,@fCollumn2)";
        string strInsertString = "INSERT INTO Table1 ([ID],[Radiologist Name],[Interesting Cases Folder],[Procedure],[Ordering Physician],[Procedure Date],[Indications],[FieFindings]) VALUES (@ID,@Radiologist_Name,@Interesting_Cases_Folder,@Procedure,@Ordering_Physician,@Procedure_Date,@Indications,@Findings)";
        oComm = new OleDbCommand(strInsertString, oleDbConn);
        oComm.Parameters.Add("@ID", OleDbType.Char,50);
        oComm.Parameters["@ID"].Value = a;

        oComm.Parameters.Add("@Radiologist_Name", OleDbType.Char,50);
        oComm.Parameters["@Radiologist_Name"].Value = b;

        oComm.Parameters.Add("@Interesting_Cases_Folder", OleDbType.Char,50);
        oComm.Parameters["@Interesting_Cases_Folder"].Value = c;

        oComm.Parameters.Add("@Procedure", OleDbType.Char,50);
        oComm.Parameters["@Procedure"].Value = d;

        oComm.Parameters.Add("@Ordering_Physician", OleDbType.Char,50);
        oComm.Parameters["@Ordering_Physician"].Value = e;

        oComm.Parameters.Add("@Procedure_Date", OleDbType.Char,50);
        oComm.Parameters["@Procedure_Date"].Value = f;

        oComm.Parameters.Add("@Indications", OleDbType.Char,50);
        oComm.Parameters["@Indications"].Value = g;

        oComm.Parameters.Add("@Findings", OleDbType.VarChar,255);
        oComm.Parameters["@Findings"].Value = h;


        //@ID,@Radiologist_Name ,@,@    ,@,@,   @   ,@
       // string strInsertString = "INSERT INTO Table1 ([ID],[Radiologist Name],[Interesting Cases Folder],[Procedure],[Ordering Physician],[Procedure Date],[Indications],[FieFindings]) VALUES ('8','7','6','5','4','3','2','1')";

        oComm.ExecuteNonQuery();
        oleDbConn.Close();

問題:當期望和提供的Data type mismatch in criteria expression時,將出現Data type mismatch in criteria expression的異常Data type mismatch in criteria expression

在查詢中,您的ID似乎是Integer類型。 但您將值提供為“ Char類型”。

解決方案:您需要提供OleDbType.Integer作為參數類型的Integer參數。

替換為:

oComm.Parameters.Add("@ID", OleDbType.Char,50);
        oComm.Parameters["@ID"].Value = a;

有了這個:

oComm.Parameters.Add("@ID", OleDbType.Integer);
        oComm.Parameters["@ID"].Value = a;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM