如何将整个DataSet的数据直接插入Access数据库,DataSet的结构跟要插入表的结构完全一样。
问有没有简单的办法,总不能一个一个从DataSet取出来,然后在一个一个拼SQL语句插入进去。那样效率低而且很繁琐。
各位有没有好的办法?

解决方案 »

  1.   

    你的DataSet中的数据开始不是从数据库中读取的?
    如果是这样,那么你在建立DataTable时可以将其结构与数据库中表的结构一样.
      

  2.   

    public static bool UpdataDataSet(DataSet ds,OleDbConnection conn,String sql)
    {          using(OleDbDataAdapter dap=new OleDbDataAdapter(sql,conn))
    {
    OleDbCommandBuilder cb=new OleDbCommandBuilder(dap);
    try
    {
    dap.Update(ds);
    return true;
    }
    catch(Exception ex)
    {
    Console.Write(ex.Message);
    return false;
    }
    }
    }
    sql是你查询出来DATASET的那天SQL命令
      

  3.   

    上面的函数就是全部更新进去啊,你试试...
    只要输入你用来查询dataset的命令
      

  4.   

    public static bool UpdataDataSet(DataSet ds,OleDbConnection conn,String sql)
    {          using(OleDbDataAdapter dap=new OleDbDataAdapter(sql,conn))
    {
    OleDbCommandBuilder cb=new OleDbCommandBuilder(dap);
    try
    {
    //重新取一遍。放到newds里面
    ds.Merge(ds);参考一下msdn具体用法
    dap.Update(ds);
    return true;
    }
    catch(Exception ex)
    {
    Console.Write(ex.Message);
    return false;
    }
    }
    }
      

  5.   

    string mysql="select * from mytable"
    mySqlDataAdapter = new SqlDataAdapter("mysql", mycontion );
    SqlCommandBuilder custCB = new SqlCommandBuilder(mySqlDataAdapter);
    custCB.QuotePrefix = "[";
    custCB.QuoteSuffix = "]";
    myDataSet = new DataSet();
    mySqlDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    mySqlDataAdapter.Fill(myDataSet,"mytable");就可以用 mySqlDataAdapter.update(myDataSet,"mytable")更新回数据库了,表里一定要有主键
      

  6.   

    可能我讲得不对,我要的是从一个数据库取出的DataSet导到另一个数据库中。
      

  7.   

    INSERT INTO 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\DB.mdb'; ''; '', Table) 
    SELECT * 
    FROM Table另外问一下,上面是一个从SQLServer导出数据到Access的SQL语句,怎么总是报错??
    错误信息:
    服务器: 消息 7399,级别 16,状态 1,行 1
    OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。验证失败。
    OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80040e4d:  验证失败。]。
      

  8.   

    hs_tang7788(hs_tang) 的说法是对的。
    另外:如果是从一个数据库A中读取数据插入到另一个数据库B中,可以这样,用“Select * from TableName Where 1!=1”语句从数据库B中读取空的DataSet结构(其实也是数据库结构),然后把从数据库A查询得到的数据处理,填充到前边从B中查询得到的空的DataSet中,最后调用DataSet.Update()就可以了。
      

  9.   

    INSERT INTO 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\DB.mdb'; ''; '', 'select * from Table') 
    SELECT * 
    FROM Table
      

  10.   

    INSERT INTO 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\DB.mdb'; ''; '', 'select * from Table') 
    SELECT * 
    FROM Table
    INSERT INTO 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\DB.mdb'; ''; '', 'select * from Table') 
    SELECT * 
    FROM Table
    INSERT INTO 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\DB.mdb'; ''; '', 'select * from Table') 
    SELECT * 
    FROM Table
    INSERT INTO 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\DB.mdb'; ''; '', 'select * from Table') 
    SELECT * 
    FROM Table