.net无法更新ACCESS数据库里的数据 可以添加,删除 代码是生成器生成的SQL 没有问题 但问题是不能更改 请教 StringBuilder strSql = new StringBuilder();
strSql.Append("update newscontent set ");
strSql.Append("title=@title,");
strSql.Append("txtcontent=@txtcontent,");
strSql.Append("shorttitle=@shorttitle,");
strSql.Append("subtitle=@subtitle,");
strSql.Append("author=@author,");
strSql.Append("txtkeyword=@txtkeyword,");
strSql.Append("copyfrom=@copyfrom,");
strSql.Append("ontop=@ontop,");
strSql.Append("intro=@intro,");
strSql.Append("elite=@elite,");
strSql.Append("titlecolor=@titlecolor,");
strSql.Append("hits=@hits,");
strSql.Append("newimg=@newimg,");
strSql.Append("adddate=@adddate,");
strSql.Append("addtime=@addtime");
strSql.Append(" where id=@ID ");
OleDbParameter[] parameters = {
new OleDbParameter("@ID", OleDbType.Integer,4),
new OleDbParameter("@title", OleDbType.VarChar,255),
new OleDbParameter("@txtcontent", OleDbType.VarWChar),
new OleDbParameter("@shorttitle", OleDbType.VarChar,255),
new OleDbParameter("@subtitle", OleDbType.VarChar,255),
new OleDbParameter("@author", OleDbType.VarChar,255),
new OleDbParameter("@txtkeyword", OleDbType.VarChar,255),
new OleDbParameter("@copyfrom", OleDbType.VarChar,255),
new OleDbParameter("@ontop", OleDbType.Integer,4),
new OleDbParameter("@intro", OleDbType.VarChar,255),
new OleDbParameter("@elite", OleDbType.Integer,4),
new OleDbParameter("@titlecolor", OleDbType.VarChar,255),
new OleDbParameter("@hits", OleDbType.Integer,4),
new OleDbParameter("@newimg", OleDbType.VarChar,255),
new OleDbParameter("@adddate", OleDbType.VarChar,255),
new OleDbParameter("@addtime", OleDbType.VarChar,255)};
parameters[0].Value =int.Parse(Request["id"].ToString());
parameters[1].Value = Request["tb_title"].ToString();
parameters[2].Value = tb_content.Text;
parameters[3].Value = Request["tb_shorttitle"].ToString();
parameters[4].Value = Request["tb_subtitle"].ToString();
parameters[5].Value = Request["tb_writer"].ToString();
parameters[6].Value = Request["tb_keyword"].ToString();
parameters[7].Value = Request["tb_from"].ToString(); if (cb_ontop.Checked == true)
{
parameters[8].Value = 1;
}
else
{
parameters[8].Value = 0;
}
parameters[9].Value = Request["tb_intro"].ToString();
if (cb_elite.Checked == true)
{
parameters[10].Value = 1;
}
else
{
parameters[10].Value = 0;
}
parameters[11].Value = Request["tb_color"].ToString();
parameters[12].Value = int.Parse(Request["tb_hits"].ToString());
parameters[13].Value = Request["tb_picpath"].ToString(); string[] time = Request["tb_time"].ToString().Split(" ".ToCharArray());
parameters[14].Value = time[0];
parameters[15].Value = time[1];
strSql.Append("update newscontent set ");
strSql.Append("title=@title,");
strSql.Append("txtcontent=@txtcontent,");
strSql.Append("shorttitle=@shorttitle,");
strSql.Append("subtitle=@subtitle,");
strSql.Append("author=@author,");
strSql.Append("txtkeyword=@txtkeyword,");
strSql.Append("copyfrom=@copyfrom,");
strSql.Append("ontop=@ontop,");
strSql.Append("intro=@intro,");
strSql.Append("elite=@elite,");
strSql.Append("titlecolor=@titlecolor,");
strSql.Append("hits=@hits,");
strSql.Append("newimg=@newimg,");
strSql.Append("adddate=@adddate,");
strSql.Append("addtime=@addtime");
strSql.Append(" where id=@ID ");
OleDbParameter[] parameters = {
new OleDbParameter("@ID", OleDbType.Integer,4),
new OleDbParameter("@title", OleDbType.VarChar,255),
new OleDbParameter("@txtcontent", OleDbType.VarWChar),
new OleDbParameter("@shorttitle", OleDbType.VarChar,255),
new OleDbParameter("@subtitle", OleDbType.VarChar,255),
new OleDbParameter("@author", OleDbType.VarChar,255),
new OleDbParameter("@txtkeyword", OleDbType.VarChar,255),
new OleDbParameter("@copyfrom", OleDbType.VarChar,255),
new OleDbParameter("@ontop", OleDbType.Integer,4),
new OleDbParameter("@intro", OleDbType.VarChar,255),
new OleDbParameter("@elite", OleDbType.Integer,4),
new OleDbParameter("@titlecolor", OleDbType.VarChar,255),
new OleDbParameter("@hits", OleDbType.Integer,4),
new OleDbParameter("@newimg", OleDbType.VarChar,255),
new OleDbParameter("@adddate", OleDbType.VarChar,255),
new OleDbParameter("@addtime", OleDbType.VarChar,255)};
parameters[0].Value =int.Parse(Request["id"].ToString());
parameters[1].Value = Request["tb_title"].ToString();
parameters[2].Value = tb_content.Text;
parameters[3].Value = Request["tb_shorttitle"].ToString();
parameters[4].Value = Request["tb_subtitle"].ToString();
parameters[5].Value = Request["tb_writer"].ToString();
parameters[6].Value = Request["tb_keyword"].ToString();
parameters[7].Value = Request["tb_from"].ToString(); if (cb_ontop.Checked == true)
{
parameters[8].Value = 1;
}
else
{
parameters[8].Value = 0;
}
parameters[9].Value = Request["tb_intro"].ToString();
if (cb_elite.Checked == true)
{
parameters[10].Value = 1;
}
else
{
parameters[10].Value = 0;
}
parameters[11].Value = Request["tb_color"].ToString();
parameters[12].Value = int.Parse(Request["tb_hits"].ToString());
parameters[13].Value = Request["tb_picpath"].ToString(); string[] time = Request["tb_time"].ToString().Split(" ".ToCharArray());
parameters[14].Value = time[0];
parameters[15].Value = time[1];
hao hao kan yi xia...
你这个adddate在ACCESS是什么类型的,难道也是字符串类型,如果是日期型,你就改成datetime吧
第二个,ACCESS不是根据参数名称来匹配的,而是根据参数的顺序来匹配的
例如
insert into taba (field1,field2) values (@field1,@field2)
那么你必须先添加@field1参数,然后添加@field2参数
参数名称对于ACCESS数据库没有任何作用
该条语句我正常这样写
insert into taba (field1,field2) values (?,?)
然后按照?的精确次序传入各个参数。参数名没有意义的。