向表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中添加一条记录呢??????????

解决方案 »

  1.   

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

  2.   

    我以前用sql server 数据库的时候没有问题的。那位有经验的说说操作access的时候要注意些啥呢
      

  3.   

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

  4.   

    调试也会更新数据库的数据库连接有没有打开?conn.Open()
      

  5.   

    好了。按照applethink 说的在Debug下执行就好了。
    其实是这样的:我的数据库在  项目文件夹\database\123.mdb 而且选的是Copy always这样每次生成或调试的时候就重新把这个文件拷贝到debug下的database下如:Debug/database.123.mdb
    这样程序操作的是debug下的。每次又覆盖掉,我昨晚就纳闷了,执行都成功怎么数据库就不改变呢!
    晕死!