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

c#+ado+access
向表abc中加一条记录:有四个字段id,parentid,name,des,其中id是自增长的。
现在:

string strSql="insert into abc (parentid,name,des) values (1,'123','')";
  OleDbCommand cmd = new OleDbCommand();
   
  cmd.Connection = this.conn;

  cmd.CommandText = strSql;

  try
  {
  cmd.ExecuteNonQuery();
  }
  catch (OleDbException sqlEx)
  {
  throw new Exception("执行sql语句[ " + strSql + " ]时出错:\n" + sqlEx.Message, sqlEx);
  }
  finally
  {
  cmd.Dispose();
  }
这里连接没有问题,并且可以用OleDbDataAdapter.full()读取数据到一个datatable

上面的语句也不出错但是执行后没有反应,数据库中不能增加
问一下,怎么有ado,用sql语句的形式向access中添加一条记录呢??????????

------解决方案--------------------
判断cmd.ExecuteNonQuery(); 返回值,>0表示执行成功

------解决方案--------------------
调试和执行两种状态下access是不一样的,调试时是数据库的副本执行,副本会更新,但结束调试副本删除,真正的数据库没有更新。你执行编译好的可执行程序就可以了。
------解决方案--------------------
调试也会更新数据库的

数据库连接有没有打开?conn.Open()