使用c#将表内容复制到同一数据库中的另一个表

本文关键字:数据库 另一个 复制 使用 | 更新日期: 2023-09-27 18:09:08

使用c#将表内容复制到同一数据库中的另一个表。

我得到一个数据库(Baza)与一些数据在两个表新的和旧的。我需要定期将新数据移动到旧数据表(在我做一些测量之后)。我需要在下一步中比较这些数据。

我正在使用SQL Server CE与Baza.sdf文件。在任何复杂的方式复制表到表做它(一些循环自动完成)?

谢谢

使用c#将表内容复制到同一数据库中的另一个表

我是这样解决的:程序逐行读取循环表NEW,并将每个值更改为参数。我有8列8个参数(7个整数和一个字符串)接下来,将每个参数插入到OLD表中。结果也显示在textBox1:

    SqlCeConnection conn = new SqlCeConnection("Data Source = ''Program Files''My         Program''Program.sdf; Password ='mypassword'");
    conn.Open();
    try
      {
      SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM [NEW]", conn);
      SqlCeDataReader rdr = cmd.ExecuteReader();
      cmd.Connection = conn;
      cmd.ExecuteNonQuery();
          while (rdr.Read())
          {
          int param1 = rdr.GetInt32(0);
          int param2 = rdr.GetInt32(1);
          int param3 = rdr.GetInt32(2);
          int param4 = rdr.GetInt32(3);
          int param5 = rdr.GetInt32(4);
          int param6 = rdr.GetInt32(5);
          int param7 = rdr.GetInt32(6);
          string param8 = rdr.GetString(7);
          textBox1.AppendText(" " + param1 + " " + param2 + " " + param3 + " " + param4 + " " + param5 + " " + param6 + " " + param7 + " " + param8);
          textBox1.AppendText(System.Environment.NewLine);
          SqlCeCommand ins = new SqlCeCommand("insert into [OLD] values ('" + param1 + "','" + param2 + "','" + param3 + "','" + param4 + "','" + param5 + "','" + param6 + "','" + param7 + "','" + param8 + "');");
          ins.Connection = conn;              
          ins.ExecuteNonQuery();
          }
      }
     catch (Exception msg)
      {
     MessageBox.Show(msg.ToString());
      }
      conn.Close();

怎么了

insert into [table] (field1, field2) 
    select field1, field2 from [table2] where (your conditions are met)

?: -)

由于这在CE中不支持,感谢@marc_s,您可以使用selectNEW表中获取记录,然后将insert纳入OLD表,然后循环通过初始记录集以删除NEW中的行,例如

加上CodeCaster所说的,

将他的代码放在一个存储过程中,并创建一个作业,以您选择的设置间隔运行。您还可以向storedprocedure添加逻辑来检查数据的有效性,并将其设置为在数据不正确时通知您。如果你在你的问题中包含了更具体的信息,可以给出例子。

相关文章: