.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[];
dt.Columns.Add("oaHave", typeof(System.String));
- 获取ORACLE的数据
OleDbDataAdapter oda = new OleDbDataAdapter(ocmd);
oda.Fill(ods);
odt = ods.Tables[];
- 循环判断是否合法
for (int i = ; i < dt.Rows.Count; i++) {
dr = dt.Rows[i];
dr.BeginEdit();
for (int j = ; 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 DataSet、DataTable操作记录的更多相关文章
- DataSet DataTable操作
DataSet ds = new DataSet(); DataTable dt = new DataTable("OrderList"); ...
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...
- DataSet,DataTable,DataColumn,DataRow的常用操作
DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...
- C#使用DataSet Datatable更新数据库的三种实现方法
本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...
- dataset datatable datacolums datarow
DataSet 表示数据在内存中的缓存. 属性 Tables 获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...
- 什么叫强类型的DATASET ?对DATASET的操作处理?强类型DataSet的使用简明教程
强类型DataSet,是指需要预先定义对应表的各个字段的属性和取值方式的数据集.对于所有这些属性都需要从DataSet, DataTable, DataRow继承,生成相应的用户自定义类.强类型的一个 ...
- Spark Dataset DataFrame 操作
Spark Dataset DataFrame 操作 相关博文参考 sparksql中dataframe的用法 一.Spark2 Dataset DataFrame空值null,NaN判断和处理 1. ...
- centos 6x系统下源码安装mysql操作记录
在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...
- Mysql更换MyISAM存储引擎为Innodb的操作记录
一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看: 1)查看mysql是否安装了innodb插件.通过下面的命令结果可知,已经安装了innodb插件. mysql> show p ...
随机推荐
- OGRE 1.9 的第一个程序(OGRE HelloWorld程序)
平台:win7, VS2010 先看运行结果吧: 1. 安装OGRE 下载OGRE SDK 1.9,解压,放在你喜欢的地方,在OGRE SDK文件加下创建“OGRE_HOME.bat.bat”文本文件 ...
- 学android: android-studio从main开始
android-studio 创建hello world很容易,一路next创建blank activity,再接好手机或者avd(andorid virtual device)就好了. 但是对于我 ...
- setTimeout的应用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- bn
BN是在每一层之前对神经元的输入进行归一化,对sigmoid激活函数有效(对Relu也有效),可以更快的收敛且可以有效减少过拟合.
- 一个大数据的demo
package test.admin; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fil ...
- Java中抽象类和接口
抽象类: 为什么要用抽象类? 1.父类的方法好多情况下是没有内容的.例如:USB是一个父类,里面的方法的函数体是可以不写,通过子类可以重写. 2.万一子类没有重写正确,是没有没有提示的.例如:父类中函 ...
- Ubuntu下配置Pyspider环境
Ubuntu 14.04.4 LTS 1.ubuntu 系统自带Python 所以不用安装Python 注:安装前先更新下软件源 命令 :sudo apt-get update 2.开始安装pip 命 ...
- Apache+PHP+MySQL
Apache:是一种web服务器(与IIS类同)PHP:全称为Hypertext Preprocessor.PHP是一种HTML 内嵌式的语言,是一种网站(网页)开发语言(与ASP.JSP..NET等 ...
- windows2003 DHCP中批处理绑定IP与MAC
最近正在实施Windows Server 2008 R2 DHCP服务器部署,要求把员工的IP地址和MAC以及姓名完成在DHCP服务器上的绑定,使用的系统是windows2003-x64,要添加的用户 ...
- 在chrome 总调试cordova出现Detached from the target. Remote debugging has been terminated with reason: Connection lost. Please re-attach to the new target
在chrome 总调试cordova出现如下错误: "Detached from the target. Remote debugging has been terminated with ...