C#使用SQL Dataset数据集代码实例
程序员文章站
2023-12-15 12:37:04
ado.net数据访问技术的一个突出特点就是支持离线访问,而实现这种离线访问的技术核心急速dataset对象,该对象通过数据驻留在内存来实现离线访问。
dataset对象...
ado.net数据访问技术的一个突出特点就是支持离线访问,而实现这种离线访问的技术核心急速dataset对象,该对象通过数据驻留在内存来实现离线访问。
dataset对象由一组datatable对象组成,这些对象与datarelation对象又包含row(行),集合,columns(列)集合,rows集合是有多个datarow对象组成,columns集合是由多个datacolumns对象组成。
步骤:
1,引入命名空间system.data;
2,创建dataset对象
3,创建datatable对象
4,将datatable对象加入dataset 对象中
5,定义列,并向datatableh中增加已经定义好的列
6,插入行数据
7,进行相关的操作
代码演示:
namespace datasetdemo { class program { static void main(string[] args) { //创建dataset对象 dataset myds = new dataset("mycsharp"); datatable mydt = new datatable("mytable01"); myds.tables.add(mydt); //添加 //声明三个列 datacolumn mydcol1 = new datacolumn("id",type.gettype("system.int32")); datacolumn mydcol2 = new datacolumn("name", type.gettype("system.string")); datacolumn mydcol3 = new datacolumn("department", type.gettype("system.string")); //添加定义好的列 mydt.columns.add(mydcol1); mydt.columns.add(mydcol2); mydt.columns.add(mydcol3); //输入数据 string[,] mystr= { { "张三","开发部" }, { "李四","技术部" }, { "王五","网络部" }, { "赵六","人事部" } }; for (int i=0; i< mystr.length/2;i++) { datarow myrow = mydt.newrow(); //增加新的行 myrow[0] = i; myrow["name"] = mystr[i, 0]; myrow[2] = mystr[i, 1]; mydt.rows.add(myrow); } myds.acceptchanges(); //保存 } } }
dataset 常用简单方法
- clear 移除表中所有含来清除任何数据的dataset;
- clone 复制该dataset的结构但不复制数据
- copy 复制dataset结构和数据
- dispose 释放dataset对象
- equals 确定两个dataset对象是否 相同
- merge 将指定的dataset datatable 或datarow 对象的数组并合并到当前地dataset或datatable中
- reset 将dataset重置为初始状态
小实例: 合并dataset内容,复制dataset内容
基于上面的代码继续写:
namespace datasetdemo { class program { static void main(string[] args) { //创建dataset对象 dataset myds = new dataset("mycsharp"); datatable mydt = new datatable("mytable01"); myds.tables.add(mydt); //添加 //声明三个列 datacolumn mydcol1 = new datacolumn("id",type.gettype("system.int32")); datacolumn mydcol2 = new datacolumn("name", type.gettype("system.string")); datacolumn mydcol3 = new datacolumn("department", type.gettype("system.string")); //添加定义好的列 mydt.columns.add(mydcol1); mydt.columns.add(mydcol2); mydt.columns.add(mydcol3); //输入数据 string[,] mystr= { { "张三","开发部" }, { "李四","技术部" }, { "王五","网络部" }, { "赵六","人事部" } }; for (int i=0; i< mystr.length/2;i++) { datarow myrow = mydt.newrow(); //增加新的行 myrow[0] = i+1; myrow["name"] = mystr[i, 0]; //使用字符串 myrow[2] = mystr[i, 1]; mydt.rows.add(myrow); } myds.acceptchanges(); //保存 console.writeline("更改前的数据"); outvalues(myds); //调用遍历方法 //创建第二个表 datatable mydt02 = mydt.clone(); datarow mydr02 = mydt02.newrow(); mydt02.rows.add(new object[] { 5,"czhenya","开发部"}); mydt02.rows.add(new object[] { 5, "陈九", "开发部" }); //------合并两个表------ myds.merge(mydt02); //将其架构合并到myds中 console.writeline("-----合并后的表-----"); outvalues(myds); //------复制-------- dataset myds01 = myds.copy(); dataset myds02 = myds.clone(); console.writeline("copy的结果"); outvalues(myds01); //完全复制 console.writeline("clone的结果"); outvalues(myds02); //克隆出框架,不复制数据 console.read(); } /// <summary> /// 实现遍历dataset /// </summary> /// <param name="ds">dataset名称</param> public static void outvalues(dataset ds) { foreach (datatable outtable in ds.tables) { console.writeline("表名称:"+ outtable.tablename); foreach (datarow outdr in outtable.rows) { foreach (datacolumn ourdcol in outtable.columns) { console.write(outdr[ourdcol] + "\t"); console.writeline(); } } } } } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接