【散分】【分享】DataTable 添加列、设置主键、添加行、查询、更新

柳晛 柳晛 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对于数据库的操作,资料太多,大家也比较熟悉。
但有时数据量较少,但更新频繁的变量操作,通常采用自定义结构,但自定义结构的可维护性和灵活性就比不上临时表,我们可以先用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");
...全文

相关推荐

C# DataTable的详细用法分享

在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结

weixin_38522029

UIBot高级认证实战:从模块化设计到企业级RPA流程开发

机器人流程自动化(RPA)通过模拟人工操作,实现跨系统、跨应用的任务自动化,其核心价值在于提升效率、减少错误与释放人力。理解RPA的工作原理,关键在于掌握其如何识别与操作UI元素、处理结构化数据以及设计异常处理机制。在工程实践中,模块化设计与健壮性构建是衡量解决方案成熟度的重要标准。以UIBot高级认证为典型场景,开发者需深入运用数据表(DataTable)进行高效的数据清洗与合并,并构建多层级的Try-Catch-Finally异常处理框架,以确保流程在面对动态界面与复杂业务逻辑时的稳定性。这些技术最终服

weixin_33966095

sqlserver合并DataTable并排除重复数据的通用方法分享

代码如下: 代码如下: ///<summary> /// 将两个列不同的DataTable合并成一个新的DataTable ///</summary> ///<param name=”dt1″>源表</param> ///<param name=”dt2″>需要合并的表</param> ///<param name=”primaryKey”>需要排重列表(为空不排重)</param> ///<param name=”maxRows”>合并后Table的最大行数</param> ///<returns>合并后的datatable</returns> public static DataTabl

weixin_38689976

datatable使用详解

使用datatable讲解,datatable中select、过滤、查找等如何实现,不必需数据进行交换 简单直接

zyq12

matlab开发-DataTable

matlab开发-DataTable。以支持纯文本、乳胶、HTML、Wiki等格式打印的表格格式存储数据,。。。

weixin_38743506
评论 37
收藏 已收藏
分享
返回顶部
柳晛
C# 111,129 成员 642,539 内容