C# DateTime.Now 标准表达式中数据类型不匹配
public bool Insert(AdminInfo ai)
{
string sql = "INSERT INTO PRF_Admin ([Title], TrueName, [Password], AdminRole, AddTime) VALUES(@Title, @TrueName, @Password, @AdminRole, @AddTime)";
OleDbParameter[] paras = new OleDbParameter[] {
new OleDbParameter("@Title", ai.Title),
new OleDbParameter("@TrueName", ai.TrueName),
new OleDbParameter("@Password", ai.Password),
new OleDbParameter("@AdminRole", ai.AdminRole),
new OleDbParameter("@AddTime", DateTime.Now)
};
return AccessHelper.ExecuteNonQuery(AccessHelper.conn, sql, paras) == 0 ? false : true;
}
在写入数据库时,Access数据库好像不认DateTime.Now,提示错误“标准表达式中数据类型不匹配”,在网上找了一找,确实有碰到这个问题的,但是解决的方法不是很理想。
因为之前new OleDbParameter("@LabTime", Convert.ToDateTime("1900-01-01")),可以成功入库,所以我想应该从DateTime.Now入手,后来真的成功了。其实也很简单:
new OleDbParameter("@AddTime", DateTime.Now.ToString()) //入库的格式为 2011/3/23 1:02:45
new OleDbParameter("@AddTime", DateTime.Now.ToLongDateString()) //入库的格式为 2011/3/23
其它的格式大家可以再试。