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

其它的格式大家可以再试。

posted @ 2013-01-12 20:55  山清石玉  阅读(866)  评论(0编辑  收藏  举报