[英]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.