从页面上传过来一个Datatable ,然后用这个插入到数据库里,
public void Setrcjqdde(DataTable dt0)
        {
            string connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\业务操作\RationLibary.mdb;";
            using (OleDbConnection conn = new OleDbConnection(connectionstring))
            {
                try
                {
                    conn.Open();
                    string sql = "delete from jsqdde";
                    OleDbCommand cmd = new OleDbCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                    OleDbDataAdapter da = new OleDbDataAdapter();
                   
                    OleDbCommand cmd2 = new OleDbCommand("insert into jsqdde (bm,nr,dw,dj,dj1) values (?,?,?,?,?)");
                    OleDbDataAdapter adapt = new OleDbDataAdapter("select bm,nr,dw,dj,dj1 from jsqdde", conn);                    OleDbCommandBuilder OleDbCmdBud = new OleDbCommandBuilder(adapt);
                    OleDbParameter bm = new OleDbParameter("@bm", OleDbType.VarChar, 50);
                    OleDbParameter nr = new OleDbParameter("@nr", OleDbType.VarWChar, 50);
                    OleDbParameter dw = new OleDbParameter("@dw", OleDbType.VarWChar, 10);
                    OleDbParameter dj = new OleDbParameter("@dj", OleDbType.Single);
                    OleDbParameter dj1 = new OleDbParameter("@dj1", OleDbType.Single);
                    adapt.Fill(dt0);                    
                    adapt.SelectCommand.Parameters.Add(bm);
                    adapt.SelectCommand.Parameters.Add(nr);
                    adapt.SelectCommand.Parameters.Add(dw);
                    adapt.SelectCommand.Parameters.Add(dj);
                    adapt.SelectCommand.Parameters.Add(dj1);                   
                    adapt.SelectCommand.Parameters["@bm"].SourceColumn = "bm";
                    adapt.SelectCommand.Parameters["@nr"].SourceColumn = "nr";
                    adapt.SelectCommand.Parameters["@dw"].SourceColumn = "dw";
                    adapt.SelectCommand.Parameters["@dj"].SourceColumn = "dj";
                    adapt.SelectCommand.Parameters["@dj1"].SourceColumn = "dj1";                    adapt.InsertCommand = OleDbCmdBud.GetInsertCommand();
                    if (dt0 != null)
                    {
                        try
                        {
                            adapt.Update(dt0);
                        }
                        catch (Exception ex)
                        {                        }
                    }
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
  dt0.Clear();
                  }
            }
        }
有主键是ID

解决方案 »

  1.   

    所有的执行都没有报错,但是就是插入不进去。另外还有一个主键是ID,还有两个字段,一个是bool的。
      

  2.   

    一大堆@是从哪来的,你用了 values (?,?,?,?,?)");后面怎么一个问号也没有?
      

  3.   

    OleDbCommand cmd2 = new OleDbCommand("insert into jsqdde (bm,nr,dw,dj,dj1) values (?,?,?,?,?)");
    把这个改成OleDbCommand cmd2 = new OleDbCommand("insert into jsqdde (bm,nr,dw,dj,dj1) values (@bm,@nr,@dw,@dj,@dj1)");
    还是下面的那些错的。应该如何改呢。
      

  4.   

     cmd2.Parameters.Add(new OleDbParameter(@bm", value));//value为你取得的变量
     .............
    注意顺序一定要和上面语句的顺序一样
      

  5.   

    OleDbParameter(@bm", 不好意思少了个“号OleDbParameter(”@bm", 
      

  6.   

    我传过来的是DataTable,所以这个value到底要怎么写。
    我是要把Datatable里的值批量插入到access中
      

  7.   

    批量插入的方法
    http://dotnet.aspx.cc/file/Insert-DataSet-Into-Access.aspx
      

  8.   

    我传过来的是DataTable,所以这个value到底要怎么写。
    我是要把Datatable里的值批量插入到access中。。
    哪你就直接用datadapter.Update(Datatable)方法更新,不懂查资料库
      

  9.   

    你好,我用没有密码的access可以更新,可是带密码的就不行了,在update()这里就直接过去了,什么都没执行
      

  10.   

    你好,我用没有密码的access可以更新,可是带密码的就不行了,在update()这里就直接过去了,什么都没执行
      

  11.   

    报什么错误??建议以后发帖使用插入源代码功能.
    public void Setrcjqdde(DataTable dt0)
      {
      string connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\业务操作\RationLibary.mdb;";
      using (OleDbConnection conn = new OleDbConnection(connectionstring))
      {
      try
      {
      conn.Open();
      string sql = "delete from jsqdde";
      OleDbCommand cmd = new OleDbCommand(sql, conn);
      cmd.ExecuteNonQuery();
      OleDbDataAdapter da = new OleDbDataAdapter();
        
      OleDbCommand cmd2 = new OleDbCommand("insert into jsqdde (bm,nr,dw,dj,dj1) values (?,?,?,?,?)");
      OleDbDataAdapter adapt = new OleDbDataAdapter("select bm,nr,dw,dj,dj1 from jsqdde", conn);  OleDbCommandBuilder OleDbCmdBud = new OleDbCommandBuilder(adapt);
      OleDbParameter bm = new OleDbParameter("@bm", OleDbType.VarChar, 50);
      OleDbParameter nr = new OleDbParameter("@nr", OleDbType.VarWChar, 50);
      OleDbParameter dw = new OleDbParameter("@dw", OleDbType.VarWChar, 10);
      OleDbParameter dj = new OleDbParameter("@dj", OleDbType.Single);
      OleDbParameter dj1 = new OleDbParameter("@dj1", OleDbType.Single);
      adapt.Fill(dt0);   
      adapt.SelectCommand.Parameters.Add(bm);
      adapt.SelectCommand.Parameters.Add(nr);
      adapt.SelectCommand.Parameters.Add(dw);
      adapt.SelectCommand.Parameters.Add(dj);
      adapt.SelectCommand.Parameters.Add(dj1);   
      adapt.SelectCommand.Parameters["@bm"].SourceColumn = "bm";
      adapt.SelectCommand.Parameters["@nr"].SourceColumn = "nr";
      adapt.SelectCommand.Parameters["@dw"].SourceColumn = "dw";
      adapt.SelectCommand.Parameters["@dj"].SourceColumn = "dj";
      adapt.SelectCommand.Parameters["@dj1"].SourceColumn = "dj1";  adapt.InsertCommand = OleDbCmdBud.GetInsertCommand();
      if (dt0 != null)
      {
      try
      {
      adapt.Update(dt0);
      }
      catch (Exception ex)
      {  }
      }
      }
      catch (Exception ex)
      {
      }
      finally
      {
      if (conn.State == ConnectionState.Open)
      {
      conn.Close();
      }
      dt0.Clear();
      }
      }
      }
      

  12.   

    public void Setrcjqdde(DataTable dt0)
      {
      string connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\业务操作\RationLibary.mdb;";
      using (OleDbConnection conn = new OleDbConnection(connectionstring))
      {
      try
      {
      conn.Open();
      string sql = "delete from jsqdde";
      OleDbCommand cmd = new OleDbCommand(sql, conn);
      cmd.ExecuteNonQuery();
      OleDbDataAdapter da = new OleDbDataAdapter();
        
      OleDbCommand cmd2 = new OleDbCommand("insert into jsqdde (bm,nr,dw,dj,dj1) values (?,?,?,?,?)");
      OleDbDataAdapter adapt = new OleDbDataAdapter("select bm,nr,dw,dj,dj1 from jsqdde", conn);  OleDbCommandBuilder OleDbCmdBud = new OleDbCommandBuilder(adapt);
      OleDbParameter bm = new OleDbParameter("@bm", OleDbType.VarChar, 50);
      OleDbParameter nr = new OleDbParameter("@nr", OleDbType.VarWChar, 50);
      OleDbParameter dw = new OleDbParameter("@dw", OleDbType.VarWChar, 10);
      OleDbParameter dj = new OleDbParameter("@dj", OleDbType.Single);
      OleDbParameter dj1 = new OleDbParameter("@dj1", OleDbType.Single);
      adapt.Fill(dt0);   
      adapt.SelectCommand.Parameters.Add(bm);
      adapt.SelectCommand.Parameters.Add(nr);
      adapt.SelectCommand.Parameters.Add(dw);
      adapt.SelectCommand.Parameters.Add(dj);
      adapt.SelectCommand.Parameters.Add(dj1);   
      adapt.SelectCommand.Parameters["@bm"].SourceColumn = "bm";
      adapt.SelectCommand.Parameters["@nr"].SourceColumn = "nr";
      adapt.SelectCommand.Parameters["@dw"].SourceColumn = "dw";
      adapt.SelectCommand.Parameters["@dj"].SourceColumn = "dj";
      adapt.SelectCommand.Parameters["@dj1"].SourceColumn = "dj1";  adapt.InsertCommand = OleDbCmdBud.GetInsertCommand();
      if (dt0 != null)
      {
      try
      {
      adapt.Update(dt0);
      }
      catch (Exception ex)
      {  }
      }
      }
      catch (Exception ex)
      {
      }
      finally
      {
      if (conn.State == ConnectionState.Open)
      {
      conn.Close();
      }
      dt0.Clear();
      }
      }
      }
      

  13.   

    据我猜测,dt0中所有行的Row都被记录未改变,而不是新插入状态,因此update不起作用,
    可能导致的原因是dt0插入记录之后,调用了dto.AcceptChenges()
      

  14.   

    记录不是没改变,是我插入之前就delete这个表了,所以一直都是插入的