• DataTable 添加列、设置主键、添加行、查询、


     

    DataTable 添加列、设置主键、添加行、查询

    对于数据库的操作,资料太多,大家也比较熟悉。
    但有时数据量较少,但更新频繁的变量操作,通常采用自定义结构,但自定义结构的可维护性和灵活性就比不上临时表,我们可以先用DataTable做为内存临时表,以数据库操作的方式灵活添加列、行,完成 主键设置、查询、更新等操作,还可以保存为xml文件。

    假设在当前类作用域有全局对象

    public static DataTable dtRefresh = new DataTable();


    我们在某个测试函数中添加下面的测试代码:

    为了方便存储为xml文件,需要设置表名:

    dtRefresh.TableName = "刷新任务";

    为临时表添加表结构,既列名:

    dtRefresh.Columns.Add("数量", typeof(int));
    dtRefresh.Columns.Add("频率", typeof(int));
    dtRefresh.Columns.Add("自动关闭延迟", typeof(int));
    dtRefresh.Columns.Add("Url", typeof(string));

    设置其中一个列Url为主键:

    DataColumn[] clos = new DataColumn[1];
    clos[0] = dtRefresh.Columns["Url"];
    dtRefresh.PrimaryKey = clos;

    为表添加一行测试记录:
    注意:添加行时,应先声明行,在需要用时再赋予对象实体,这样的目的是为了突出每次添加新行时,只需赋予一个dtRefresh.NewRow()返回的对象即可,而不用重新声明一个行对象名。因为类操作是传引用,如果一个行对象名赋予一个表,再修改这个对象名的内容,表中内容会跟着修改,所以每次添加行时要重用行名但避免重用对象。

    复制代码
    DataRow dr;
    dr = dtRefresh.NewRow();
    dr["数量"] = 100;
    dr["频率"] = 100;
    dr["自动关闭延迟"] = 100;
    dr["Url"] = "http://www.baidu.com/";
    dtRefresh.Rows.Add(dr);
    复制代码

    执行查询:

    DataRow[] drArr = dtRefresh.Select("Url = \'http://www.baidu.com/\'");

    foreach (var item in drArr)
    {
    txb.Text += item["Url"].ToString() + Environment.NewLine;
    }

    根据查询条件,更新记录:

    复制代码
    DataRow[] drArr = dtRefresh.Select("Url = \'http://www.baidu.com/\'");

    drArr[0]["Url"] = "g.cn";

    foreach (var item in drArr)
    {
    txb.Text += item["Url"].ToString() + Environment.NewLine;
    }
    复制代码

    写入XML文件:

    dtRefresh.WriteXml(@"d:\1.xml");
  • 相关阅读:
    CodeForces
    Educational Codeforces Round 111 (Rated for Div. 2)
    「JOISC 2020 Day4」治疗计划
    [杂题合集] 其真无码耶?
    [2021.7.16] 洛谷七月月赛
    倾心力作!嵌入式linux开发指南(RK3399),3399教程1500+,开发资料全覆盖
    资料丨迅为IMX6ULL开发板-主频和时钟配置例程(二)
    资料丨迅为IMX6ULL开发板-主频和时钟配置例程
    自学嵌入式拉低偏差丨4412开发板学习指引+为学习后面内容打下基础
    文档资源有话说丨再次升级-i.MX6Q开发板手册更新
  • 原文地址:https://www.cnblogs.com/wujilong/p/2958952.html
Copyright © 2020-2023  润新知