Ado.Net学习之【DataSet】和【SqlDataAdapter】结合实现数据的【增】【删】【改】【查】

准备:再数据库中建立一张表:表名:PicInfos

表结构:

表数据:

关于数据库的链接就不多说了。直接进入今天的主题:利用DataSet和SqlDataAdapter对数据库中的数据进行操作:

一、查看数据:

public void DoSqlData()
        {
            using (SqlConnection sqlconn = new SqlConnection(sqlStr))
            {
                string str = "select * from PicInfos";   //sql查询语句
                SqlDataAdapter sda = new SqlDataAdapter(str, sqlconn);
                DataSet ds = new DataSet();        //建立一个DataSet集合
                sda.Fill(ds);             //将查询的结果存放在DataSet集合中
                GridView1.DataSource = ds;    //指定数据源
                GridView1.DataBind();   //绑定数据
            }
        }

结果如下所示:

第二、增添数据:

public void DoSqlData()
        {
            using (SqlConnection sqlconn = new SqlConnection(sqlStr))
            {
                string str = "select * from PicInfos";   //sql查询语句
                SqlDataAdapter sda = new SqlDataAdapter(str, sqlconn);
                DataSet ds = new DataSet();        //建立一个DataSet集合
                sda.Fill(ds);             //将查询的结果存放在DataSet集合中 

                //利用dataset向数据库中添加数据,利用sqldataadapter更新数据
                SqlCommandBuilder cmdbuilder = new SqlCommandBuilder(sda);   //关键点
                //添加行,实例化一个行对象,注意是用newrow来创建行
                DataRow dr = ds.Tables[0].NewRow();   //在创建新的一行
                //添加的数据
                dr["name"] = "tom";
                dr["content"] = "tom是不是tom";
                dr["type"] = "数据";
                dr["price"] = "0";
                dr["picurl"] = "image\\6.png";
                ds.Tables[0].Rows.Add(dr);
                if (ds.HasChanges())    //如果ds集合发生改变
                {
                    sda.Update(ds);    //更新数据
                }
                GridView1.DataSource = ds;    //指定数据源
                GridView1.DataBind();   //绑定数据
            }
        }

结果如下所示:

第三、修改数据:

public void DoSqlData()
        {
            using (SqlConnection sqlconn = new SqlConnection(sqlStr))
            {
                string str = "select * from PicInfos";   //sql查询语句
                SqlDataAdapter sda = new SqlDataAdapter(str, sqlconn);
                DataSet ds = new DataSet();        //建立一个DataSet集合
                sda.Fill(ds);             //将查询的结果存放在DataSet集合中 

                SqlCommandBuilder acb = new SqlCommandBuilder(sda);
                ds.Tables[0].Rows[12]["Content"] = "我改的是第12行数据的【内容】新数据";
                if (ds.HasChanges())
                {
                    sda.Update(ds);
                    ds.AcceptChanges();
                }
                GridView1.DataSource = ds;    //指定数据源
                GridView1.DataBind();   //绑定数据
            }
        }

结果如下是所示:

第四、删除数据:

public void DoSqlData()
        {
            using (SqlConnection sqlconn = new SqlConnection(sqlStr))
            {
                string str = "select * from PicInfos";   //sql查询语句
                SqlDataAdapter sda = new SqlDataAdapter(str, sqlconn);
                DataSet ds = new DataSet();        //建立一个DataSet集合
                sda.Fill(ds);             //将查询的结果存放在DataSet集合中 

                SqlCommandBuilder acb = new SqlCommandBuilder(sda);
                ds.Tables[0].Rows[13].Delete();  //删除第13行的数据
                if (ds.HasChanges())
                {
                    sda.Update(ds);
                    ds.AcceptChanges();
                }
                GridView1.DataSource = ds;    //指定数据源
                GridView1.DataBind();   //绑定数据
            }
        }

结果如下所示:

注意:ds.Tables[0].Rows[13]的行数是从0开始的。

写写博客,方便自己也方便别人!

时间: 2024-11-05 22:35:42

Ado.Net学习之【DataSet】和【SqlDataAdapter】结合实现数据的【增】【删】【改】【查】的相关文章

ADO.NET 增 删 改 查

ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访问技术的基础 连接数据库基本格式:需要两个类1.数据库连接类 SqlConnection2.数据库操作类 SqlCommand 1.连接数据库写连接字符串,立马就要想到有4点要写完,1.连接哪台服务器,2.连接哪个数据库,3.连接用户名,4.密码string sql = "server=.(服务器i

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一.增 C:create 增加,创建,向数据库里面添加数据. insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers) values('K010','苹果',3.0,'高青',90) 二.改 U:update修改,从数据库表里面修改数据. update Fruit set Source='烟台' where Ids='K001' 三.删 D:delet

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform)让用户方便的操作数据库中的数据. 什么是ADO.NET 是一组库类,System.Data. Ado.net组成 Connection:用来连接数据库 Command:用来执行SQL语句 DataReader:只读.只进的结果集,一条一条读取数据(SteamReader.XmlReader) Da

【WPF学习笔记】之如何通过后台C#代码添加(增/删/改按钮)实现对SQLServer数据库数据的更改

首先,需要连接SQLServer数据库的服务器名称server.数据库名database.数据库用户名uid以及密码pwd,如下图: 然后需要以下数据库SQL代码段,粘贴复制即可: DbHelperSQL.cs代码: 注意要更改红框中的内容 using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using S

ADO.NET之填充DataSet类

主要使用数据适配器SqlDataAdapter类进行填充DataSet类 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; namespace ConsoleApplication1 { class Progr

ADO.NET之使用DataSet类更新数据库

1.首先从数据库获得数据填充到DataSet类,该类中的表和数据库中的表相互映射. 2.对DataSet类中的表进行修改(插入,更新,删除等) 3.同步到数据库中:使用SqlDataAdapter实例名.Update(DataSet实例名,DataSet中和数据库中表相映射的表名),它必须和SqlCommandBuilder必须组合使用 SqlCommandBuilder:自动生成单表命令,用于将对 DataSet 所做的更改与关联的 SQL Server 数据库的更改相协调,意思是对数据库执行

ADO.NET 新特性之SqlBulkCopy(批量插入大量数据)

转自:http://blog.csdn.net/huaer1011/article/details/2312361 在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们通过DataTable或DataReader批量迁移数据.数据源可以来自关系数据库或者XML文件,甚至WebService返回结果.其中最重要的一个类就是SqlBulkCopy类,使用它

Linux学习之CentOS(三)----将Cent0S 7的网卡名称eno16777736改为eth0

Linux系统版本:CentOS_7(64位) 一.前言: 今天又从Centos 6.5装回了Centos 7,毕竟还是要顺应潮流嘛.安装完成之后,发现发现CentOS 7默认的网卡名称是eno16777736,如图所示: 像我这种有轻微强迫症的人看到这个名字总感觉不爽,于是偏要把eno16777736改成以前版本的eth0,那就开始吧. 二.修改CentOS 7的网卡名称: 输入如下命令,进入对应目录,编辑文件: vim /etc/sysconfig/grub 然后,往这个文件中添加“net.

Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员

有关const成员.static成员.const static成员的初始化: 1.const成员:只能在构造函数后的初始化列表中初始化 2.static成员:初始化在类外,且不加static修饰 3.const static成员:类只有唯一一份拷贝,且数值不能改变.因此,可以在类中声明处初始化,也可以像static在类外初始化 #include <iostream> using std::cout; using std::endl; class base { public: base(int