使用C#将表内容复制到同一数据库中的另一个表。
我有一个数据库(Baza
),其中包含两个表NEW和OLD中的一些数据。我需要定期将新数据移动到OLD数据表(在我做一些测量之后)。我需要在下一步比较这些数据。
我正在使用SQL Server CE wit Baza.sdf
文件。以任何复杂的方式将表复制到表中(某些循环自动执行)?
由于
答案 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,您可以使用NEW
从select
表中获取记录,然后insert
将其记录到OLD
表中,然后循环遍历初始记录集,例如从ID NEW
中删除行。
答案 2 :(得分:-2)