我用OleDb操作ACCESS,无论添加、删除、修改全部进行了跟踪,一切正常全部操作成功,但数据库的数据就是毫无变化。
用的操作类是我一直使用的,以前都没这个问题。
我的系统是WINDOW2003    .NET2005
文件夹添加了EveryOne,给了所有权限有没有哪位朋友遇到过这个问题啊?

解决方案 »

  1.   

    最先想到的...
    把sql语句弄出来,放在access里跑下,看看对不对
      

  2.   

    文件夹添加了EveryOne,给了所有权限其实如果因为没有权限改不了就会报错了。比较同意其他几位说的
      

  3.   

    文件夹添加了EveryOne,给了所有权限 ------------------这个从安全角度上是错误的.
    其实,系统已经自动给相应的目录以NETWORK_SERVICE的访问权限了.
      

  4.   

     //数据库连接字符串
            protected static string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB\\Students.mdb;Persist Security Info=False";
            
    public static bool UpdateDataTable(DataTable dt,string tblName,string filter)
            {
                try 
                {
                    OleDbConnection  conn = new OleDbConnection(connectionString);
                    //打开连接
                    conn.Open();

                    OleDbDataAdapter dataAdapter = new OleDbDataAdapter("select * from " + tblName + filter , conn);
                    OleDbCommandBuilder objCommandBuilder = new OleDbCommandBuilder(dataAdapter);
                    //dataAdapter.SelectCommand = objCommandBuilder.GetDeleteCommand();
                    //dataAdapter.DeleteCommand = objCommandBuilder.GetDeleteCommand();
                    //dataAdapter.InsertCommand = objCommandBuilder.GetInsertCommand();
                    //dataAdapter.UpdateCommand = objCommandBuilder.GetUpdateCommand();
                    //--执行更新操作
                    dataAdapter.Update(dt);
                    //释放内存空间
                    dataAdapter.Dispose();
                    //关闭连接
                    conn.Close();
                    return true;
                }
                catch(OleDbException e) 
                {
                    Console.WriteLine(e.ToString());
                    throw new Exception(e.ToString());
                }
            }
    按钮事件:
    DataTable dt = (DataTable)dataGridView1.DataSource;    
                
                for (int i = dataGridView1.Rows.Count-1; i >=0 ; i--)
                {
                    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0];                if (chk.Selected == true)
                    {
                        dt.Rows[i].Delete();
                    }
                }            bool bl = DbHelperOleDb.UpdateDataTable(dt, "StudentInfo", "");
      

  5.   

    我只有这一个数据库  在工程目录下的在查询的时候是没问题的,就是删除、修改、添加,无论直接执行SQL还是用DataAdapter.Update()都不行我再数据库中修改后,窗体里显示的数据也是立刻跟着改变的
      

  6.   

    SQL语句跑过了  完全正确,没有任何问题
      

  7.   

    試下debug把sql的value複製出來,然後到Access中的sql視圖測試是否通過,不能通過則可能是某些數據字段不相匹配,如果可以通過則可能是你的其它代碼出問題.
      

  8.   

     protected static string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/网站根目录/DB/Students.mdb") + ";Persist Security Info=False";另外,数据文件毫无疑问要放在App_Data子目录中,而不是放在你自已的DB子目录, 还要给它加上"EVERYONE"权限.
      

  9.   

    我的是WINFORMS,不是ASP.NET  :)
      

  10.   

    我只有这一个数据库  在工程目录下的
    -----------------------------------
    调试的时候,看看是不是复制一份到debug目录下了,这时你测试的是这个数据库,所以,下次再运行,又复制一份到debug目录下,造成之前的数据丢失。
      

  11.   

    UpdateDataTable 确定执行了吗