C# 使用C将表内容复制到同一数据库中的另一个表
使用C将表内容复制到同一数据库中的另一个表中 我得到了一个数据库Baza,其中包含两个新表和旧表中的一些数据。在我进行一些测量之后,我需要定期将新数据移动到旧数据表中。我需要在下一步比较这些数据 我正在使用SQLServerCE.sdf文件。以任何复杂的方式将表复制到表,并自动执行一些循环 谢谢有什么问题吗:C# 使用C将表内容复制到同一数据库中的另一个表,c#,sql-server-ce,C#,Sql Server Ce,使用C将表内容复制到同一数据库中的另一个表中 我得到了一个数据库Baza,其中包含两个新表和旧表中的一些数据。在我进行一些测量之后,我需要定期将新数据移动到旧数据表中。我需要在下一步比较这些数据 我正在使用SQLServerCE.sdf文件。以任何复杂的方式将表复制到表,并自动执行一些循环 谢谢有什么问题吗: insert into [table] (field1, field2) select field1, field2 from [table2] where (your cond
insert into [table] (field1, field2)
select field1, field2 from [table2] where (your conditions are met)
?:-
由于CE不支持这一点,感谢@marc_s,您可以使用select从新表中获取记录,然后将其插入旧表,然后循环通过初始记录集从新的by ID中删除行,例如。添加到CodeCaster声明中 将他的代码放入storedprocedure中,并创建一个作业,按照您选择的设置间隔运行。 您可以向StoredProcess添加逻辑,以检查数据的有效性,并将其设置为在数据不正确时通知您。如果您在问题中包含更具体的信息,则可以给出示例 我是这样解决的: 程序逐行读取循环表中的新值,每个值都会更改为参数。我有8列,8个参数,7个整数和一个字符串 接下来,每个参数都被插入到旧表中。 结果也显示在文本框1中:
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();
我做了:私有无效检查\u Clickobject sender,EventArgs e{SqlCeConnection conn=new SqlCeConnectionData Source=\\Program Files\\MyProgram\\Baza.sdf;Password='Password';conn.Open;尝试将{SqlCeCommand cmd=new SqlCeCommandinsert插入[3GOLD]ID,X1,X2,X3从[3G]选择ID,X1,X2,X3];cmd.Connection=conn;cmd.ExecuteNonQuery;}catch Exception msg{MessageBox.Showmsg.ToString;}conn.Close;}但是:我遇到了一个错误:解析查询时出错。[令牌行号=1,令牌行偏移量=137,令牌出错=]再次强调:我认为OP使用SQL Server Compact Edition很重要,我认为它不支持这样的东西……我认为SQL Server Compact Edition不支持存储过程。。。如果您可以使用一个单独的实用程序而不是C代码,那么您应该检查它,它允许您将数据导出为插入脚本,然后您可以针对您的目标运行该脚本database@marc_s,它是关于同一数据库中的两个表,在我看来,您的解决方案有点过分了。