软件编程
位置:首页>> 软件编程>> C#编程>> C#使用SQL Dataset数据集代码实例

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

作者:Czhenya  发布时间:2023-02-24 08:23:07 

标签:c#,sql,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();
         }
       }
     }
   }
 }
}

来源:https://blog.csdn.net/Czhenya/article/details/77718386

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com