获取不同数据库表信息将筛选出来的信息序列化以及反序列化

相应类结构:

Class Tables:

     [Serializable]
[XmlRoot("Table")]
public class Tables
{
public Tables()
{
Items = new List<ColumnsItems>();
} /// <summary>
/// 新表名称
/// </summary>
[XmlElementAttribute("NewTableName")]
public string NewTableName { get; set; } /// <summary>
/// 旧表名称
/// </summary>
[XmlElementAttribute("OldTableName")]
public string OldTableName { get; set; } [XmlElementAttribute("Field")]
public List<ColumnsItems> Items { get; set; } }

Class ColumnsItems:

     [Serializable]
[XmlRoot("Field")]
public class ColumnsItems
{
/// <summary>
/// 新表字段
/// </summary>
[XmlElementAttribute("NewColumn")]
public string NewColumn { get; set; } /// <summary>
/// 旧表字段
/// </summary>
[XmlElementAttribute("OldColumn")]
public string OldColumn { get; set; }
}

Class createXml:

     [Serializable]
[XmlRoot("Tables")]
public class createXml
{
public createXml()
{
setTable = new List<Tables>();
}
[XmlElementAttribute("Table")]
public List<Tables> setTable { get; set; }
}

对比表格序列化:

         #region 将对比表格序列化
/// <summary>
/// 保存信息事件,将表中数据对应关系读取到XML文件中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void saveInfo_Click(object sender, EventArgs e)
{
XmlDocument xd = new XmlDocument(); // 序列化赋值对象
List<Tables> allTable = new List<Tables>();
//Tables getTable = new Tables();
//ColumnsItems columnItem = new ColumnsItems(); // 读取字段信息
int i = dataGridView2.RowCount-;
for (int j = ; j < i;j++)
{
////
Tables getTable = new Tables();
ColumnsItems columnItem = new ColumnsItems();
///
if (dataGridView2.Rows[j].Cells[].Value.ToString() != null)
{
getTable.NewTableName = dataGridView2.Rows[j].Cells[].Value.ToString();
}
if (dataGridView2.Rows[j].Cells[].Value != null)
{
columnItem.NewColumn = dataGridView2.Rows[j].Cells[].Value.ToString();
}
if (dataGridView2.Rows[j].Cells[].Value != null)
{
getTable.OldTableName = dataGridView2.Rows[j].Cells[].Value.ToString();
}
if (dataGridView2.Rows[j].Cells[].Value != null)
{
columnItem.OldColumn = dataGridView2.Rows[j].Cells[].Value.ToString();
}
if (columnItem != null)
{
getTable.Items.Add(columnItem);
while (dataGridView2.Rows[j].Cells[].Value == dataGridView2.Rows[j + ].Cells[].Value && dataGridView2.Rows[j].Cells[].Value == dataGridView2.Rows[j+].Cells[].Value)
{
ColumnsItems itemTemp = new ColumnsItems();
if (dataGridView2.Rows[j+].Cells[].Value != null)
{
itemTemp.NewColumn = dataGridView2.Rows[j + ].Cells[].Value.ToString();
}
if (dataGridView2.Rows[j+].Cells[].Value != null)
{
itemTemp.OldColumn = dataGridView2.Rows[j + ].Cells[].Value.ToString();
}
getTable.Items.Add(itemTemp);
j++;
if (j >= i)
{
break;
}
}
}
allTable.Add(getTable);
}
createXml setXml = new createXml();
setXml.setTable = allTable;
using(StringWriter wr = new StringWriter())
{
XmlSerializer createXml = new XmlSerializer(typeof(createXml));
createXml.Serialize(wr,setXml);
xd.LoadXml(wr.ToString());
xd.Save("c:\\1.xml");
}
}
#endregion

反序列化函数:

        #region 反序列化函数
/// <summary>
/// 反序列化函数
/// </summary>
/// <param name="xmlPath"></param>
/// <returns></returns>
public createXml Deserialize(string xmlPath)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
try
{
using (StringReader sr = new StringReader(xmlDoc.OuterXml))
{
XmlSerializer xmldes = new XmlSerializer(typeof(createXml));
createXml getObjXml = (createXml)xmldes.Deserialize(sr);
return getObjXml;
}
}
catch (Exception)
{
throw;
}
}
#endregion

效果图片:

C# XmlSerializer将对象序列化以及反序列化(Sqlite数据库)的更多相关文章

  1. C#对象序列化与反序列化zz

      C#对象序列化与反序列化(转载自:http://www.cnblogs.com/LiZhiW/p/3622365.html) 1. 对象序列化的介绍........................ ...

  2. C#对象序列化与反序列化

    C#对象序列化与反序列化(转载自:http://www.cnblogs.com/LiZhiW/p/3622365.html) 1. 对象序列化的介绍.......................... ...

  3. 初识序列化和反序列化,使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

    序列化是将对象转换成字节流的过程,反序列化是把字节流转换成对象的过程.对象一旦被序列化,就可以把对象状态保存到硬盘的某个位置,甚至还可以通过网络发送给另外一台机器上运行的进程.本篇主要包括: ● 使用 ...

  4. java 对象序列化与反序列化

    Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化  Java序列化是指把Java对象转换为 ...

  5. Java Io 对象序列化和反序列化

    Java 支持将任何对象进行序列化操作,序列化后的对象文件便可通过流进行网络传输. 1.      对象序列化就是将对象转换成字节序列,反之叫对象的反序列化 2.      序列化流ObjectOut ...

  6. Java对象序列化与反序列化一 JSON

    Java对象序列化与反序列化一 JSON 1. 依赖库 jackson-all-1.6.1.jar 2. 代码 public class Student {    private String nam ...

  7. Java之对象序列化和反序列化

    一.对象序列化和反序列化存在的意义: 当你创建对象,只要你需要,他就一直存在,但当程序结束,对象就会消失,但是存在某种情况,如何让程序在不允许的状态,仍然保持该对象的信息.并在下次程序运行的时候使用该 ...

  8. Java 序列化 对象序列化和反序列化

    Java 序列化 对象序列化和反序列化 @author ixenos 对象序列化是什么 1.对象序列化就是把一个对象的状态转化成一个字节流. 我们可以把这样的字节流存储为一个文件,作为对这个对象的复制 ...

  9. Java对象序列化和反序列化的工具方法

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

随机推荐

  1. FZU 1054 阅读顺序

    水题,倒着输出. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm& ...

  2. struts2拦截器-自定义拦截器,放行某些方法(web.xml配置)

    一.web.xml配置 <filter> <filter-name>encodingFilter</filter-name> <filter-class> ...

  3. javap -s 查看java方法签名

    工程先用eclipse生成class目录,转到class目录下执行: javap -s com.example.hellojni.MainActivity Compiled from "Ma ...

  4. td文字过长部分显示,鼠标移动显示全部内容

    只要在该td中加上title属性,鼠标移到这里就会看到全部内容, 在td中加上div,属性设置如下,就能显示宽度为200px的内容,大于则隐藏.代码如下: <td title="我是代 ...

  5. zend framework 配置连接数据库

        Zend_Db_Adapter是zend frmaeword的数据库抽象层api.基于pdo, 你可以使用Zend_Db_Adapter连接和处理多种 数据库,包括:microsoft SQL ...

  6. Docker学习计划

    刚开始学习Docker的时候,找资料在网上看到最多的是Docker的好处.比如: 1.Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多 2.Docker 对系统资源的利用率很高, ...

  7. eclipse中集成svn maven开发手册---创建提分支

    开发时,需要拉取分支进行修改等操作 右键项目,选择team->分支/标记 输入创建分支地址 注意: 1,创建分支路径时,最后一层文件名称为项目的名称 2,点击浏览按钮可能会出现无法选择,且ecl ...

  8. Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 及sql2008外围服务器

    转载:Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 错误原因如下: Exception in thread & ...

  9. zabbix3.0.4 部署History

    [root@zabbix-Test ~]# history     1  passwd root    2  exit    3  yum  install ntpd*    4  yum  inst ...

  10. UWP项目的包无法通过本地校验程序

    在UWP工程中,我们打出的包Appx需要通过本地的校验程序校验通过后才可以进行商店的提交.在校验程序汇报的不通过原因当中,除了显而易见的因为美术资源不规范.代码调用不合法API等原因之外,还有一些奇怪 ...