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


猜你喜欢
- 之前项目总会遇到很多搜索框类的功能,虽然不是很复杂,不过每次都要去自己处理数据,并且去处理搜索框的变化,写起来也比较麻烦,今天来做一个比较简
- android获取ibeacon列表,供大家参考,具体内容如下最近公司有需要做ibeacon需求。因为涉及扫码的时间。特意写一个servic
- Zipkin是一种分布式跟踪系统。它有助于收集解决微服务架构中延迟问题所需的时序数据。它管理这些数据的收集和查找。Zipkin的设计基于&n
- 本文实例讲述了C#实现XML与实体类之间相互转换的方法。分享给大家供大家参考,具体如下:using System;using System.
- 前言Emmmm…最近在做项目的途中,有遇到一个方法需要接收的参数只有一个或者较少的时候就懒得写实体类去接收,使用spr
- 前言 * 体系是Struts2框架的重要组成部分,不夸张的说,没有 * 体系,也就没有这么好用的Struts2框架了。在Struts2框架中
- 之前的一篇博客中,讲的是用栈实现了中缀表达式的简易计算器,对于我们人来讲,中缀表达式是一种比较直观,而且非常好计算的一种形式,但对于计算器来
- * 惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧,先把工作完成了,再看也来得及,是吧!在项目中这种添加图片上传的效
- //FilterKalman.csnamespace FusionFiltering{public class FilterKalman &
- 一. 为什么要使用接口假如有一个需求:要求实现防盗门的功能。门有"开"和"关"的功能,锁有"
- 一、项目简述功能: 系统分为三个角色。最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,选课,退课,成绩查 询。,教学课程,查
- 给图片添加阴影效果,这是很常见的需求。第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下:show_view
- 我们使用Spring整合Quartz开发,本实例采用数据库模式的demo。xml文件配置如下:<?xml version="
- java 中死锁问题的实例详解先看代码在做解释public class DeadLock implements Runnable{ &nbs
- 常需要对list进行排序,小到List<String>,大到对自定义的类进行排序。不需要自行归并或堆排序。简单实现一个接口即可。
- 之前知道spring支持JSR校验,在自己定义的bean中加入@NotNull,@NotBlank,@Length等之类的校验用于处理前台传
- 本文实例讲述了Android编程使用Service实现Notification定时发送功能。分享给大家供大家参考,具体如下:/** * 通过
- 本文实例讲述了Android开发实现跟随手指的小球效果。分享给大家供大家参考,具体如下:配置DrawView类用于绘制小球public cl
- 准备数据data class ContactEntity( val letter: Char, &n
- 先记录下jdk8之前的一些帮助方法判断time是否在now的n天之内/** * 判断time是否在now的n天之内