读书人

asp.net+access增加操作小代码如下

发布时间: 2012-05-09 12:13:59 作者: rapoo

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}',就是错误的了。

读书人网 >asp.net

热点推荐