三、DataSet数据集的操作

1.DataSet的显示

string connStr = "server=.;uid=sa;pwd=123;database=testDb";
using (SqlConnection conn = new SqlConnection(connStr))
{
     //实例化一个数据集
     DataSet ds = new DataSet();
     //数据适配器,用于DataSet和SQL数据库的连接
     SqlDataAdapter sda = new SqlDataAdapter("select * from employee ", conn);
     //在DataSet中添加或刷新行
     sda.Fill(ds);
     //将ds中的表显示到dataGridView1控件中
     dataGridView1.DataSource = ds.Tables[0];
}

2.DataSet的合并

string connStr = "server=.;uid=sa;pwd=123,;database=testDb";
using (SqlConnection conn = new SqlConnection(connStr))
{
     //实例化数据集ds1
     DataSet ds1 = new DataSet();
     SqlDataAdapter sda1 = new SqlDataAdapter("select * from employee", conn);
     sda1.Fill(ds1);
     //实例化数据集ds2
     DataSet ds2 = new DataSet();
     SqlDataAdapter sda2 = new SqlDataAdapter("select * from testTable2", conn);
     //在DataSet中添加或刷新行
     sda2.Fill(ds2);
     //将ds2与ds1合并,并处理不兼容的架构
     ds1.Merge(ds2, true,MissingSchemaAction.AddWithKey);
     this.dataGridView1.DataSource = ds1.Tables[0];
}

3.DataSet的复制

//数据集ds1
DataSet ds1;
private void Form1_Load(object sender, EventArgs e)
{
      string connStr = "server=.;uid=sa;pwd=123;database=TestDb";
      using (SqlConnection conn = new SqlConnection(connStr))
      {
           //SqlDataAdapter 数据一次性加载完成,连接就关闭了(数据量大的时候)
           //SqlDataReader 数据一行一行读取,需要手动关闭连接(数据量小的时候)
           using (SqlDataAdapter sda = new SqlDataAdapter("select * from employee", conn))
           {
                ds1 = new DataSet();
                sda.Fill(ds1);
                dataGridView1.DataSource = ds1.Tables[0];
           }
      }
}
private void button1_Click(object sender, EventArgs e)
{
     //复制ds1的数据和结构到ds2
     DataSet ds2 = ds1.Copy();
     dataGridView2.DataSource = ds2.Tables[0];
}

4.DataSet的更新

DataSet ds1;
SqlDataAdapter sda;
private void button1_Click(object sender, EventArgs e)
{
      string connStr = "server=.;uid=sa;pwd=123;database=TestDb";
      //SqlConnection conn = new SqlConnection(connStr);
      SqlConnection conn = new SqlConnection(connStr);
      SqlCommand cmd = conn.CreateCommand();
      cmd.CommandText = "select * from employee";
      sda = new SqlDataAdapter();
      sda.SelectCommand = cmd;
      ds1 = new DataSet();
      sda.Fill(ds1, "oldDs");
      dataGridView1.DataSource = ds1.Tables[0];
}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
      textBox1.Text = dataGridView1.SelectedCells[0].Value.ToString();
      textBox2.Text = dataGridView1.SelectedCells[1].Value.ToString();
      textBox3.Text = dataGridView1.SelectedCells[2].Value.ToString();
      textBox4.Text = dataGridView1.SelectedCells[3].Value.ToString();
      textBox5.Text = dataGridView1.SelectedCells[4].Value.ToString();
}

private void button2_Click(object sender, EventArgs e)
{
      DataTable dt = ds1.Tables["oldDs"];
      //将表结构加载到表中
      sda.FillSchema(dt, SchemaType.Mapped);
      DataRow dr = dt.Rows.Find(textBox1.Text);
      dr["name"] = textBox2.Text;
      dr["gender"] = textBox4.Text;
      dr["money"] = textBox3.Text;
      dr["salary"] = textBox5.Text;
      //用于对数据集DataSet进行更改操作,同时作用于关联的数据库
      SqlCommandBuilder scbd = new SqlCommandBuilder(sda);
      //更新DataTable中的数据
      sda.Update(dt);
      //sda.Update(ds1, "oldDs");
}

原文地址:https://www.cnblogs.com/wby94510/p/9245505.html

时间: 2024-10-09 22:37:08

三、DataSet数据集的操作的相关文章

.net中Dataset数据集的认识

DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存.DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联.您还可通过使用 UniqueConstraint 和 ForeignKeyConstraint 对象在 DataSet 中实施数据完整性. 其实个人对DataSet的认识还并不是很深,只最近在.net的开发中研究了下.在开发过程中,我们可以通过DataAdapter使用数据源中的数据生成和填充

C#操作Dataset数据集与SQLite数据库

近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘: 一.SQLite操作,直接贴代码,很简单: //创建一个数据库文件 string datasource=Application.StartupPath + "\\test.db"; System.Data.SQLite.SQLiteConnection.CreateFile(datasource); //连接数据库 System.Da

Redis笔记整理(三):进阶操作与高级部分

[TOC] Redis笔记整理(三):进阶操作与高级部分 Redis发布订阅 Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis客户端可以订阅任意数量的频道. 下图展示了频道channel1,以及订阅这个频道的三个客户端--client1,client2,client5之间的关系. 当有新消息通过PUBLISH命令发送给频道channel1时,这个消息就会被发送给订阅它的三个客户端: 相关操作命令如下: 命令 描述 PSUBS

TXT文件转换成DataSet数据集

1 /// <summary> 2 /// TXT文件转换成DataSet数据集 3 /// </summary> 4 /// <param name="FilePath"></param> 5 /// <param name="TableName"></param> 6 /// <returns></returns> 7 private DataSet TextFile

使用DataSet数据集插入记录

使用INSERT语句能够完成数据插入,使用DataSet对象也可以完成数据插入.为了将数据库的数据填充到DataSet中,则必须先使用DataAdapter对象的方法实现填充,当数据填充完成后,开发人员可以将记录添加到DataSet对象中,然后使用Update方法将记录插入数据库中.使用DataSet更新记录的步骤如下所示: q  创建一个Connection对象. q  创建一个DataAdapter对象. q  初始化适配器. q  使用数据适配器的Fill方法执行SELECT命令,并填充D

《Linux Shell脚本攻略》 笔记 第三章:文件操作

<Linux Shell脚本攻略> 笔记 第三章:文件操作 1.生产任意大小的文件 [[email protected] dd_test]# [[email protected] dd_test]# dd if=/dev/zero of=junk.data bs=1k count=10 10+0 records in 10+0 records out 10240 bytes (10 kB) copied, 0.00137023 s, 7.5 MB/s 2.文件系统相关测试 [ -f $file

【转载】8天学通MongoDB——第三天 细说高级操作

今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标. 一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工具,它的使用跟我们C#里面的count使用简直一模一样. <2> distinct 这个操作相信大家也是非常熟悉的,指定了谁,谁就不能重复,直接上图. <3> group 在mongodb里面做group操作有点

jQuery系列 第三章 jQuery框架操作CSS

第三章 jQuery框架操作CSS 3.1 jQuery框架的CSS方法 jQuery框架提供了css方法,我们通过调用该方法传递对应的参数,可以方便的来批量设置标签的CSS样式. 使用JavaScript设置标签的样式相对来说比较麻烦,而如果需要批量的设置多个标签的样式那需要写很多代码,使用jQuery可以为我们简化该过程.     使用原生的方式来设置标签的样式(代码示例) 1 <body> 2 <div>我是div标签</div> 3 <button id=

Git工程开发实践(三)——Git常用操作

Git工程开发实践(三)--Git常用操作 一.Git仓库操作 1.Git仓库创建 git init在当前目录中初始化Git仓库git init [project-name]创建一个新目录并初始化仓库初始化git仓库会默认创建一个mater分支,创建名为.git的子目录,内含初始化Git仓库中所有的骨干文件,此时仓库中的文件还没有被跟踪.通过git add命令来实现对指定文件的跟踪,然后执行git commit提交. git add . git commit -m 'initial projec