我已经用另一个数据库文件创建了一个表,并用它填充了一个DataSet。我想将这个DataTable保存到一个新创建的SQLite数据库文件中,但是该表并不在要复制的数据库文件中。请问如何实现呢?如果可以的话,我希望避免使用循环。以下是最佳答案:虽然它包含循环,但可以在2-3秒内写入100,000条记录。
在这种情况下,dataSet1.Tables["duomenys"]已经填充了我需要传输到另一个数据库的所有数据。我也使用循环来填充数据集。
using (DbTransaction dbTrans = kaupykliuduomConn.BeginTransaction())
{
downloadas.Visible = true; //my progressbar
downloadas.Maximum = dataSet1.Tables["duomenys"].Rows.Count;
using (DbCommand cmd = kaupykliuduomConn.CreateCommand())
{
cmd.CommandText = "INSERT INTO duomenys(Barkodas, Preke, kiekis) VALUES(?,?,?)";
DbParameter Field1 = cmd.CreateParameter();
DbParameter Field2 = cmd.CreateParameter();
DbParameter Field3 = cmd.CreateParameter();
cmd.Parameters.Add(Field1);
cmd.Parameters.Add(Field2);
cmd.Parameters.Add(Field3);
while (n != dataSet1.Tables["duomenys"].Rows.Count)
{
Field1.Value = dataSet1.Tables["duomenys"].Rows[n]["Barkodas"].ToString();
Field2.Value = dataSet1.Tables["duomenys"].Rows[n]["Preke"].ToString();
Field3.Value = dataSet1.Tables["duomenys"].Rows[n]["kiekis"].ToString();
downloadas.Value = n;
n++;
cmd.ExecuteNonQuery();
}
}
dbTrans.Commit();
}
在这种情况下,dataSet1.Tables["duomenys"]已经填充了我需要传输到另一个数据库的所有数据。我也使用循环来填充数据集。