回 帖 发 新 帖 刷新版面

主题:如何把DATASET中的数据批量插入到ACCESS

如何把DATASET中的数据批量插入到ACCESS?现在DATASET中有10万条记录,现插入速度约每秒300条,请问如何能加快速度,我的代码如下:
        int i = dsSyncData.Tables["JKData"].Rows.Count;
                if (i > 0)
                {
                    strPhone = dsSyncData.Tables["JKData"].Rows[0]["电话号码"].ToString();
            OleDbConnection myConn = new OleDbConnection(strConnect_Data);
                    if (myConn.State != ConnectionState.Open)
                        myConn.Open();

                    OleDbDataAdapter myAdapter = new OleDbDataAdapter();
                    OleDbCommand myCommand = new OleDbCommand("Insert into devjkdata (更新时间,电话号码) values (@更新时间,@电话号码)", myConn);
                    
                    myCommand.CommandType = CommandType.Text;

                    OleDbTransaction Trans = null;
                    Trans = myConn.BeginTransaction();
                    myCommand.Transaction = Trans;
                    
                    //myCommand.Parameters.Add("@更新时间", OleDbType.Char, 19);
                    myCommand.Parameters.Add("@更新时间", "更新时间");
                    myCommand.Parameters["@更新时间"].SourceColumn = dsSyncData.Tables["JKData"].Columns["更新时间"].ColumnName;

                    //myCommand.Parameters.Add("@电话号码", OleDbType.Char, 11);
                    myCommand.Parameters.Add("@电话号码", "电话号码");
                    myCommand.Parameters["@电话号码"].SourceColumn = dsSyncData.Tables["JKData"].Columns["电话号码"].ColumnName;

                    //OleDbTransaction Trans = null;
                    //Trans = myConn.BeginTransaction();
                    //myCommand.Transaction = Trans;

                    for (int j = 0; j < i; j++)
                    {
                        myCommand.Parameters["@更新时间"].Value = dsSyncData.Tables["JKData"].Rows[j]["更新时间"];
                        myCommand.Parameters["@电话号码"].Value = dsSyncData.Tables["JKData"].Rows[j]["电话号码"];
                        myCommand.ExecuteNonQuery();
                    }
                    Trans.Commit();
                    Trans.Dispose();
         }

回复列表 (共1个回复)

沙发

你可以用myAdapter 一起更新到ACCESS里面去
那样快点

我来回复

您尚未登录,请登录后再回复。点此登录或注册