我用xp系统,数据库可以读.并已经设置好权限(everyone完全),dataset已经写入进去,oleDbDataAdapter1.Update(mydataDataSet1);能编译过去 执行也没错误,但就是写不进去,我用了单个方法:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\mydata.mdb");
            OleDbCommand com = new OleDbCommand("insert into admin (姓名,性别,家庭住址,联系方式) values ('dddd','bb','ffff','eeeee')",con);
            //oleDbConnection1.Open();
            con.Open();
            com.ExecuteNonQuery();
            con.Close();
可以执行,但是也无法写入. 
我用oleDbDataAdapter1的插入测试的时候可以写入进去.不知道这个是什么原因,困扰我n个星期了.

解决方案 »

  1.   

    lz:
      从语法角度没有问题,我在本机上试了,也没有问题(是不是access要设置共享模式?),既然你这么急,就换个方式:                DataTable dt=dataSet1.Tables["UserManager"];
                    DataRow dr = dt.NewRow();
                    dr["UserName"] = UserName.Text;
                    dr["UserTel"] = UserTel.Text;
                    dr["UserAddr"] = UserAddr.Text;
                    dt.Rows.Add(dr);                oleDA.Update(dataSet1, "UserManager");
      

  2.   

    也没有报任何异常?那你用Adapter是怎么用的呢,能否提供下代码 ...
      

  3.   

    你用OleDbCommandBuilder了吗?for exaple:OleDbDataAdapter sda=new OleDbDataAdapter("select * from student",con);
    OleDbCommandBuilder builder=new OleDbCommandBuilder(sda);
    DataSet ds=new DataSet();
    sda.Fill(ds,"student");
      

  4.   

    liujia_0421(SnowLover) 用了你的方法还是不行啊,我已经把数据表刷新进去,还是不能存到access数据库中.我用asp.net 就可以存进去.
      

  5.   

    数据库只读属性没有设置,sdl2005lyx() 你有什么好的方法?
      

  6.   

    ACCESS数据库文件的属性不能设置为只读, 直接修改ACCESS数据库文件只读属性即可.
      

  7.   

    在你的数据库中->选择查询->在设计视图中创建查询->右键sql视图
    把你的插入语句复制到该视图看是否能成功 如果能则是你的程序问题否则是你的数据库问题
    数据库的话执行中会有提示
      

  8.   

    先确定一下,你单击Button2,执行下面的代码:
    private void button2_Click(object sender, EventArgs e)
            {
                OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\mydata.mdb");
                OleDbCommand com = new OleDbCommand("insert into admin (姓名,性别,家庭住址,联系方式) values ('dddd','bb','ffff','eeeee')",con);
                //oleDbConnection1.Open();
                con.Open();
                com.ExecuteNonQuery();
                con.Close();
                //oleDbConnection1.Close();
            }
    能否将数据存入数据库?
      

  9.   

    TO:我已经把数据表刷新进去,还是不能存到access数据库中.我用asp.net 就可以存进去.那你用Asp.net存数入数据的用法是否和Winform中的一样?
      

  10.   

    前面我已经给出另外的方法:                DataTable dt=dataSet1.Tables["UserManager"];
                    DataRow dr = dt.NewRow();
                    dr["UserName"] = UserName.Text;
                    dr["UserTel"] = UserTel.Text;
                    dr["UserAddr"] = UserAddr.Text;
                    dt.Rows.Add(dr);                oleDA.Update(dataSet1, "UserManager");
      

  11.   

    另外你的数据库中的表是否有主键,如果你用CommandBuilder时,数据库中的表是否设置主键,也是不行的..
      

  12.   

    哈我已经解决了, 原因是控件OleDbConnection 的数据连接字符串必须设置2此才管用,设置一次不更新,2次就好了(还有就是让程序运行,输入数据的时候必须报错一次,就是输入的数据类型不对,这个是啥原因.....),郁闷啊.我是一个一个属性慢慢试的.累啊,一天了  没停下来.!!!郁闷.谢谢你们 发分了..........
      

  13.   

    程序没有问题,是你的Access数据库放的位置有问题,我也遇到过这种情况,应该放在\bin\Debug目录下即可!