最近在做一个小企业网站的时候,碰到几个简单的问题。但是对于较少接触access数据库的开发人员来说,可能也会跟我一样,遇到一些小问题。现在列出这两个问题,让大家少走点弯路:
(1)sql语句中的参数必须与parameters中的值一一对应, 如下:
StringBuilder strSql = new StringBuilder();
strSql.Append("update news set classname=@classname,
title=@title,content=@content,author=@author,updatetime=@updatetime
where id=@id ");
OleDbParameter[] parameters = {
new OleDbParameter("@classname", OleDbType.VarChar),
new OleDbParameter("@title", OleDbType.VarChar),
new OleDbParameter("@content", OleDbType.LongVarChar),
new OleDbParameter("@author", OleDbType.VarChar),
new OleDbParameter("@updatetime", OleDbType.Date),
new OleDbParameter("@id",OleDbType.Integer)};
@id这个参数是news表id,所以不能按表中顺序排在classname之前。
(2)@classname 不能取名为class或者name,这是access数据库保留关键字,执行sql会报sql语法错误。所以要加中括号“[]”或者改为其他名字