C#使用SQL Dataset数据集代码实例

2020-01-05 09:40:57于海丽

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