.NET DataSet、DataTable操作记录
一直在习惯.net的编程思维,或是说C#吧。因为前几年一直在用PHP做站,现在用.net很不习惯,主要C#都依赖对控件、类的熟悉,不然很多功能都实现不了。
需求
最近做了一功能,从SQL Server中取出授权记录,再从Oracle数据库中(又是Oracle)读取对应条件的状态,然后判断SQL中的授权是否合法。由于SQL中的授权已经实现了,之前是通过人工到ORACLE中查询是否合法,现打算让系统自动判断。
方法
之前是将dataset绑定到repeater控件,现在想到一个办法就是修改绑定前dataset中的datatable,添加一字段用来判断是否合法。废话不多说,贴代码:
- 获取SQL的表,并添加一新列
SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(ds,"tauth"); //注意给ds的表取个别名,方便后面删除 dt = ds.Tables[0]; dt.Columns.Add("oaHave", typeof(System.String));
- 获取ORACLE的数据
OleDbDataAdapter oda = new OleDbDataAdapter(ocmd); oda.Fill(ods); odt = ods.Tables[0];
- 循环判断是否合法
for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; dr.BeginEdit(); for (int j = 0; j < odt.Rows.Count; j++) { odr = odt.Rows[j]; if (dr["fname"].ToString() == odr["lastname"].ToString()) { msg = dr["fname"].ToString(); dr["oaHave"] = "有"; } } dr.EndEdit(); }
- 删除dataset已存在的表,再添加更新后的datatable
ds.Tables.Remove("tauth"); ds.Tables.Add(dt); //绑定DS到Repeater rptAuth.DataSource = ds; rptAuth.DataBind();
其它功能
没怎么用,但是大概了解dataset、datatable的使用方法,像排序、删除行、添加行这些都可以比较灵活地实现。
只是注意一点:如果是绑定到repeater控件,那么这些修改完成后的datatable,需要重新写入dataset。
标签:
c#基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库