zoukankan      html  css  js  c++  java
  • .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。

  • 相关阅读:
    命令行net time同步时间(内网)
    清理树莓派系统垃圾
    树莓派常用功能的安装和使用
    树莓派的媒体播放软件omxplayer
    树莓派安装FTP服务器
    Raspbian 中国软件源
    树莓派挂载和卸载U盘或移动硬盘
    树莓派上搭建NAS
    Aria2+yaaw+Chrome插件BaiduExporter实现百度网盘下载
    树莓派做下载机+Web服务器(Aria2下载+yaaw做UI+nginx)
  • 原文地址:https://www.cnblogs.com/sfrost/p/4895245.html
Copyright © 2011-2022 走看看