分享

C# 如何把Dataset中的数据批量插入到ACCESS中

 醉人说梦 2014-07-29
C# 如何把Dataset中的数据批量插入到ACCESS中

您好:

  C# 如何把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();
}

搜索更多相关主题的帖子: Dataset中  数据批量  ACCESS  myConn  int  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多