日期:2014-05-18  浏览次数:20664 次

update 执行了也没有报错,但修改内容没有成功
strSql.Append("update HouseInfo set ");
  strSql.Append("hName=@hName");
  strSql.Append(" where houseId=@houseId ");
  OleDbParameter[] parameters = {
new OleDbParameter("@houseId", OleDbType.Integer,4),
new OleDbParameter("@hName", OleDbType.VarChar,50)};
  parameters[0].Value = model.houseId;
  parameters[1].Value = model.hName;
  try
  {
  int rows = OleDbHelper.ExecuteNonQuery(strSql.ToString(), parameters);
  result = true;
  }
  catch (Exception ex)
  {
  throw ex;
  }
执行完后,没有报错,但rows是0,不知道是什么原因。

------解决方案--------------------
有没有符合条件的记录
用同样的条件查询下看看有记录没有
或者
看看表上有没有触发器
------解决方案--------------------
先用select语句查询一下有没有符合条件的资料,
------解决方案--------------------
ACCESS帮顶。
------解决方案--------------------
int rows = OleDbHelper.ExecuteNonQuery(strSql.ToString(), parameters);
你把strSql.ToString()的语句在Access数据库中执行一下
------解决方案--------------------
按楼上说的嘛 你可以捕获变量值 就是你的strsql 然后将这个变量值也就是你的更新语句放到access里执行下 
要是那边能成功再找代码问题
------解决方案--------------------
设置断点看看执行完strSql.Append(" where houseId=@houseId ");
后strSql的值是什么。

得到的SQL语句在查询分析器中执行一下看看结果,从而定位到底是SQL语句的问题还是程序的问题。