asp.net+access增加操作,小代码如下 标准表达式中数据类型不匹配
- C# code
/// <summary> /// 增加公告信息 /// </summary> /// <param name="e"></param> public static void addAnnouncement(Equipment e) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("设备管理_be.mdb");//ACCESS链接字符串 OleDbConnection connAcc = new System.Data.OleDb.OleDbConnection(strConn); connAcc.Open(); string sql = string.Format("INSERT INTO 公告管理 VALUES('{0}','{1}','{2}','{3}','{4}','{5}')", new OleDbParameter("发布人",e.发布人), new OleDbParameter("主题", e.主题), new OleDbParameter("发布时间", e.发布时间), new OleDbParameter("内容", e.内容), new OleDbParameter("响应情况", e.响应情况), new OleDbParameter("备注", e.备注) ); OleDbCommand cmd = new OleDbCommand(sql, connAcc); cmd.ExecuteNonQuery();//这一步标准表达式中数据类型不匹配 connAcc.Close(); }//是不是代码哪里写的有问题?[解决办法]
哥,这里面怎么又那么多中文!。。。
你把“e.发布时间”这个字段转换成字符串
Convert.ToString(e.发布时间)就ok了
建议以后代码中命名和数据库字段别用英文。。
[解决办法]
你写的我怎么看不懂呢
[解决办法]
[解决办法]
扫一眼就知道有问题了。
access 的时间字段,必须要 格式化字符串才行,不能吧datetime类型传递进去。
如果数值型字段,被转为字符型也会出错。
估计 new OleDbParameter("发布人",e.发布人),会错。
e.发布人是int的话,INSERT INTO 公告管理 VALUES('{0}',就是错误的了。