简体   繁体   English

选择查询中发生C#oledb异常数据类型不匹配

[英]c# oledb exception data type mismatch occured in select query

I'm trying to create a form to edit the datagridview which is data-bind to an access database, but when I was querying the database it threw an exception "Data type mismatch in criteria expression". 我试图创建一个表格来编辑数据绑定到Access数据库的datagridview,但是当我查询数据库时,它抛出了一个异常“条件表达式中的数据类型不匹配”。 Here's my code/select query: 这是我的代码/选择查询:

OleDbCommand cmd = conn.CreateCommand();
string query = "SELECT * FROM DataServisan WHERE NomorNota=?";

conn.Open();

cmd.CommandText = query;

cmd.Parameters.Add(new OleDbParameter { Value = nomorNota, DbType = DbType.String });

OleDbDataReader dr = cmd.ExecuteReader();

There is no DbType.String in OleDbType enumeration definition. OleDbType枚举定义中没有DbType.String You can use VarChar , VarWChar , LongVarChar or LongVarWChar depending on length of string value when using OleDbParameter constructor : 使用OleDbParameter构造函数时,可以根据字符串值的长度使用VarCharVarWCharLongVarCharLongVarWChar

var parameter = new OleDbParameter("ParamName", OleDbType.VarWChar);
parameter.Value = nomorNota;
cmd.Parameters.Add(parameter);

Alternative way to define parameter value: 定义参数值的另一种方法:

cmd.Parameters.Add("ParamName", OleDbType.VarWChar);
cmd.Parameters["ParamName"].Value = nomorNota;

References: 参考文献:

OleDbParameter Class (MSDN Docs) OleDbParameter类(MSDN文件)

OleDbParameterCollection.Add Method (MSDN Docs) OleDbParameterCollection.Add方法(MSDN文档)

OleDbType Enumeration vs. Microsoft Access Data Types (MS Support) OleDbType枚举与Microsoft Access数据类型(MS支持)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 oledb异常未在标准表达式中的c#数据类型不匹配中处理 - oledb exception was unhandled in c# Data type mismatch in criteria expression 选择查询C#中发生类型为'System.Data.OleDb.OleDbException'的未处理异常 - An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in Select query C# 条件表达式中的数据类型不匹配| Access,OleDb,C# - Data type mismatch in criteria expression | Access, OleDb, C# C#访问OleDb条件表达式中的数据类型不匹配 - C# Access OleDb Data type mismatch in criteria expression C#OleDb select查询抛出缺少的运算符异常 - C# OleDb select query throws missing operator exception C#中的条件异常中的数据类型不匹配 - data type mismatch in criteria exception in C# System.Data.OleDb.OleDbException:“标准表达式中的数据类型不匹配。” C# 错误 - System.Data.OleDb.OleDbException: 'Data type mismatch in criteria expression.' C# error System.Data.OleDb.OleDbException:'条件表达式中的数据类型不匹配。 在C#中 - System.Data.OleDb.OleDbException: 'Data type mismatch in criteria expression. in c# 选择查询C#查询中的条件表达式中的数据类型不匹配错误 - Data Type Mismatch error in Criteria expression in Select query C# query 使用十进制参数-OleDb,C#,Access的数据类型不匹配 - Data type mismatch using Decimal parameter- OleDb, C#, Access
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM