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

时间:2011-09-19 20:32:33

标签: c# sql-server-ce

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

我有一个数据库(Baza),其中包含两个表NEW和OLD中的一些数据。我需要定期将新数据移动到OLD数据表(在我做一些测量之后)。我需要在下一步比较这些数据。

我正在使用SQL Server CE wit Baza.sdf文件。以任何复杂的方式将表复制到表中(某些循环自动执行)?

由于

3 个答案:

答案 0 :(得分:1)

我用这种方式解决了它: 程序在循环表中逐行读取,每个值都变为参数。我有8列,所以8个参数(7个整数和一个字符串) 接下来将每个参数插入到OLD表中。 Resuld也显示在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();

答案 1 :(得分:0)

出了什么问题:

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

? : - )

由于CE不支持,感谢@marc_s,您可以使用NEWselect表中获取记录,然后insert将其记录到OLD表中,然后循环遍历初始记录集,例如从ID NEW中删除行。

答案 2 :(得分:-2)