好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

dy("nrwz");

查看更多关于C#使用SQL Dataset数据集代码实例的详细内容...

  阅读:43次