[英]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
构造函数时,可以根据字符串值的长度使用VarChar
, VarWChar
, LongVarChar
或LongVarWChar
:
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.