首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在与c#中的本地数据库同步时避免远程数据库中的重复

问如何在与c#中的本地数据库同步时避免远程数据库中的重复
EN

Stack Overflow用户
提问于 2018-11-22 12:31:50
回答 1查看 188关注 0票数 0

我尝试了代码,但失败了,因为当从本地数据库插入时,远程数据库中的行重复。

代码语言:javascript
复制
using System.Data.SQLite;
using System.Net.NetworkInformation;
using MySql.Data.MySqlClient;
namespace super
{
public partial class neworupload : Form
{
     SQLiteConnection con = new SQLiteConnection(@"connection string");
     MySqlConnection conn;
     String connstring;
     public neworupload()
     {
          InitializeComponent();
     }
     private void button1_Click(object sender, EventArgs e)
     {
          bool connection = NetworkInterface.GetIsNetworkAvailable();
          if (connection == true)
          {
               connstring = "SERVER=your ip;PORT=port;DATABASE=dbname;UID=userid;PASSWORD=password;SslMode = none;";
               try
               {
                    con.Open();
                    MessageBox.Show("Connection success");
                    String qu = "select * from users ";
                    SQLiteCommand cmd = new SQLiteCommand(qu, con);
                    SQLiteDataReader data = cmd.ExecuteReader();
                    while (data.Read())
                    {
                         String a = data["iduser"].ToString();
                         String b = data["name"].ToString();
                         String c = data["type"].ToString();
                         String d = data["email"].ToString();
                         String f = data["hash"].ToString();
                         Console.WriteLine(a);
                         Console.WriteLine(b);
                         Console.WriteLine(c);
                         Console.WriteLine(d);
                         Console.WriteLine(f);
                         conn = new MySqlConnection();
                         conn.ConnectionString = connstring;
                         conn.Open();
                         String qudemo = "select iduser from users";
                         Console.WriteLine("dddd" + qudemo);
                         String qu1 = "INSERT INTO users(iduser,name,type,email,hash) Values(@iduser,@name,@type,@email,@hash)";
                         MySqlCommand cmd1 = new MySqlCommand(qu1, conn);
                         cmd1.Parameters.AddWithValue("@iduser", a);
                         cmd1.Parameters.AddWithValue("@name", b);
                         cmd1.Parameters.AddWithValue("@type", c);
                         cmd1.Parameters.AddWithValue("@email", d);
                         cmd1.Parameters.AddWithValue("@hash", f);
                         cmd1.ExecuteNonQuery();
                         conn.Close();
                   }
                   con.Close();
               }
               catch (MySql.Data.MySqlClient.MySqlException ex)
               {
                   Console.WriteLine(ex);
               }
           }
           else
           {
                MessageBox.Show("Check connectivity and try again!");
           }
       }
   }
}

这里本地数据库包含7行,远程数据库包含5行。本地和远程数据库中的前5行是相同的。因此,当我们插入查询时,由于重复行而失败。实际上,额外的2行必须插入到远程数据库中。如何避免这个问题?

EN

回答 1

Stack Overflow用户

发布于 2018-11-22 15:10:24

将上次保存的用户ID存储在本地数据库中,当您再次转到远程数据库同步数据时,将此where子句放入查询where RemoteDB.UserID > local.LastStoredUserID中。所以它只会获取新的记录...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53423929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档