使用c#将表内容复制到同一数据库中的另一个表
本文关键字:数据库 另一个 复制 使用 | 更新日期: 2023-09-27 18:09:08
使用c#将表内容复制到同一数据库中的另一个表。
我得到一个数据库(Baza
)与一些数据在两个表新的和旧的。我需要定期将新数据移动到旧数据表(在我做一些测量之后)。我需要在下一步中比较这些数据。
我正在使用SQL Server CE与Baza.sdf
文件。在任何复杂的方式复制表到表做它(一些循环自动完成)?
谢谢
我是这样解决的:程序逐行读取循环表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,您可以使用select
从NEW
表中获取记录,然后将insert
纳入OLD
表,然后循环通过初始记录集以删除NEW
中的行,例如
加上CodeCaster所说的,
将他的代码放在一个存储过程中,并创建一个作业,以您选择的设置间隔运行。您还可以向storedprocedure添加逻辑来检查数据的有效性,并将其设置为在数据不正确时通知您。如果你在你的问题中包含了更具体的信息,可以给出例子。