本文介绍了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条件表达式中的数据类型不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!