page contents

c# 静态变量数据库同步方法

本文讲述了c# 静态变量数据库同步方法!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-10-20uyRVsx635c87ed08cd0.jpg本文讲述了c# 静态变量数据库同步方法!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

数据同步对比步骤:

1.将两数据库中对应的数据表分别生成XML文件

         /// <summary>
        /// 将一个DataTable以xml方式存入指定的文件中
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="filePath"></param>
        public void SaveDataTableToXml(DataTable dt, string filePath)
        {
            //创建文件夹
            if (!Directory.Exists(Path.GetDirectoryName(filePath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(filePath));
            }

            DataSet ds = new DataSet();
            ds.Tables.Add(dt.Copy());
            ds.WriteXml(filePath);
        }

        /// <summary>
        /// 从一个指定的文件中读取DataTable
        /// </summary>
        /// <param name="filePath"></param>
        public DataTable ReadDataTableFromXml(string filePath)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(filePath);
            if (ds.Tables.Count > 0)
            {
                return ds.Tables[0];
            }
            else
            {
                return null;
            }
        }

2.上传要对比的XML数据文件到服务器端或者是从服务器下载XML文件到本地

        C#Sockect异步传送或者WebClient方式传送

3.对比要同步的数据资料

         /// <summary>
        /// 对比文件
        /// </summary>
        /// <param name="localFile">本地文件</param>
        /// <param name="remoteFile">远程文件</param>
        /// <returns></returns>
        private bool FileCompare(string localFile, string remoteFile)
        {
            int localFilebyte;
            int remoteFilebyte;
            FileStream localFileStream;
            FileStream remoteFileStream;
            if (localFile == remoteFile)
            {
                return true;
            }
            localFileStream = new FileStream(localFile, FileMode.Open);
            remoteFileStream = new FileStream(remoteFile, FileMode.Open);
            if (localFileStream.Length != remoteFileStream.Length)
            {
                localFileStream.Close();
                remoteFileStream.Close();
                return false;
            }
            do
            {
                localFilebyte = localFileStream.ReadByte();
                remoteFilebyte = remoteFileStream.ReadByte();
            }
            while ((localFilebyte == remoteFilebyte) && (localFilebyte != -1));
            localFileStream.Close();
            remoteFileStream.Close();
            return ((localFilebyte - remoteFilebyte) == 0);
        }
        /// <summary>
        /// 对比数据表
        /// </summary>
        /// <param name="localDataTable">本地数据表</param>
        /// <param name="remoteDataTable">远程数据表</param>
        /// <returns></returns>
        public bool DataTableCompare(DataTable localDataTable, DataTable remoteDataTable)
        {
            if (localDataTable == null || remoteDataTable == null)
            {
                return false;
            }
            if (localDataTable.Rows.Count != remoteDataTable.Rows.Count)
            {
                return false;
            }
            if (localDataTable.Columns.Count != remoteDataTable.Columns.Count)
            {
                return false;
            }
            for (int i = 0; i < localDataTable.Rows.Count; i++)
            {
                for (int j = 0; j < localDataTable.Columns.Count; j++)
                {
                    if (localDataTable.Rows[i][j].ToString() != remoteDataTable.Rows[i][j].ToString())
                    {
                        return false;
                    }
                }
            }
            return true;
        }

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

attachments-2022-10-kwwbZ9WG6347756cbf77c.jpg

  • 发表于 2022-10-29 09:55
  • 阅读 ( 378 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. Pack 1131 文章
  3. 小柒 1046 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章