欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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();
          }
        }
      }
    }
  }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

上一篇:

下一篇: