C#访问OleDb条件表达式中的数据类型不匹配

C#访问OleDb条件表达式中的数据类型不匹配

本文介绍了C#访问OleDb条件表达式中的数据类型不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你。请查收下面的代码为给我一个数据类型在条件表达式不匹配​​的错误例外?我似乎无法找到问题...

来源



* record.Date 可空日期时间?类型是明确铸造到的DateTime



* record.Date 设置程序中的其它用途为空。但 record.Date INSERT操作设置的是从的的DateTimePicker 的,所以这个方法record.Date 值不应该为空



WHERE





和(如果你想知道)








从我访问文件(设计视图):








感谢您!






这里的方法的AddRecord。谢谢!



 公共静态INT的AddRecord(录音记录)
{
OleDbConnection的连接= LABMeetingRecordsDB.GetConnection( );
串insertStatement =INSERT INTO DocumentInfo+
([文件名],[日期],[主题],[类型])+
VALUES(?,?,?, ?);
尝试{
的OleDbCommand的InsertCommand =新的OleDbCommand(insertStatement,连接);
insertCommand.Parameters.AddWithValue(@文件名,record.FileName);
insertCommand.Parameters.AddWithValue(@日,(DATETIME)record.Date);
insertCommand.Parameters.AddWithValue(@主题,record.Subject);
insertCommand.Parameters.AddWithValue(@类型,record.getDBType());

connection.Open();
insertCommand.ExecuteNonQuery();

串selectStatement =SELECT IDENT_CURRENT('DocumentInfo')FROM DocumentInfo
的OleDbCommand的SelectCommand =新的OleDbCommand(selectStatement,连接);
INT的recordId = Convert.ToInt32(selectCommand.ExecuteScalar());

AddCategory(连接,recordId所,record.Category);

返回的recordId;

}赶上(OleDbException前){
罚球前;
} {最后
的Connection.close();
}
}


解决方案

所以, ... [问题解决了]:D



从的我得知



Meaning that the convenient AddWithValue pulled a fast one on me...

Thank you @LarsTech and @DJKraze for helping me out despite the confusion of the presentation!

这篇关于C#访问OleDb条件表达式中的数据类型不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 07:51