C#中DataSet、SqlDataAdapter的使用-关于数据库操作
本文链接:https://blog.csdn.net/xubaifu1997/article/details/51816785
DataSet
表示数据在内存中的缓存。
我的理解是,在内存中的数据表,需要引用
using System.Data;
SqlDataAdapter
表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。
此类不能被继承。
暂时知道的用法是使用它进行数据库查询操作,之后将查询到的结果填充给DataSet对象。
A simple example of using DataSet
/*
连接字符串
*/
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = "WIN-KGQPBDFG53P\\SQLEXPRESS";
scsb.InitialCatalog = "STU50";
scsb.UserID = "sa";
scsb.Password = "123";
/*
连接对象
*/
SqlConnection sqlConn = new SqlConnection(scsb.ToString());
sqlConn.Open();
/*
查询语句
*/
string commStr = "SELECT 学号, 姓名, 出生日期 FROM Readers";
/*
创建SqlDataAdapter对象
第一个参数是SQL语句字符串
第二个参数是已打开连接的数据库连接对象
*/
SqlDataAdapter sda = new SqlDataAdapter(commStr, sqlConn);
/*
将查询到的内容填充到DataSet对象
使用SqlDataAdapter的Fill方法
第一个参数是DataSet对象
第二个参数是指定表的名称
*/
DataSet ds = new DataSet();
sda.Fill(ds, "Readers");
/*
将DataSet中的表传给DataGridView控件
*/
dgvShowInfo.DataSource = ds.Tables["Readers"];
利用SqlDataAdapter同步更新数据库
当在DataGridView控件中对数据进行修改时,可以直接将修改内容同步写入数据库。
建立一个按钮,用与执行同步数据库的操作,当按钮被点击时,执行
SqlCommandBuilder scb =
new SqlCommandBuilder(sda);
sda.Update(ds,
"Readers");
PS:ds需要有主键列才能进行更新操作
参考:
SqlCommandBuilder是用于自动生成SQL语句的一个类,当需要进行更改时生成SQL语句把更改写进数据库。
如果去掉SqlCommandBuilder,需要自己写关于更新的SQL语句。
C#中DataSet、SqlDataAdapter的使用-关于数据库操作的更多相关文章
- SQL 2005 中查询或执行另外的数据库操作的方法
原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据, ...
- PHP中对数据库操作的封装
在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...
- c# 数据库操作学习
一. 如何处理数据库连接 1. 数据库连接可以分为“物理连接”和“逻辑连接”(默认使用连接池的情况下Pooling=true): 物理连接:创建数据库连接时,默认会有一定数量的物理连接(默认Min P ...
- 使用aop记录数据库操作的执行时间
在项目中,我们往往需要记录数据库操作的时间,根据操作时间的不同,分别记录不同等级的日志. 首先我们可以写一个类实现MethodInterceptor接口: import org.aopalliance ...
- 深入详解美团点评CAT跨语言服务监控(五)配置与数据库操作
CAT配置 在CAT中,有非常多的配置去指导监控的行为,每个配置都有相应的配置管理类来管理,都有一个配置名, 配置在数据库或者配置文件中都是以xml格式存储,在运行时会被解析到具体实体类存储.我们选取 ...
- ado.net中的 sqlconnection sqlcommand datareader dataset SqlDataAdapter之间的关系
Connection: 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能够知道是 ...
- Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中
功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...
- ADO.Net中DataSet的应用
一.知识点描述 1.DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.也就是说,即使断开数据链路,或者关闭数据库,Data ...
- ADO.NET中SqlCommand对数据库操作
我们要不断地进行数据库的读写,那么ExecuteNonQuery(),ExecuteReader()与ExecuteScalar()就是我们在对数据库进行操作时要用到的,下面我来依次认识一下: ...
随机推荐
- Vue ui创建项目
vue-cli 3.0 版本为我们提供了集 创建.管理.分析 为一体的可视化界面vue UI,一个可视化项目管理器 一.打开终端,安装最新vue-cli npm install -g @vue/cli ...
- 机器学习作业(二)逻辑回归——Python(numpy)实现
题目太长啦!文档下载[传送门] 第1题 简述:实现逻辑回归. 此处使用了minimize函数代替Matlab的fminunc函数,参考了该博客[传送门]. import numpy as np imp ...
- Linux - mysql 异常: ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
问题描述 ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists 解决方案 删除:/var/lock/su ...
- SDOI2010 粟粟的书架 lg2468(可持久化,前缀和)
题面见https://www.luogu.org/problemnew/show/P2468 然后这道题属于合二为一题,看一眼数据范围就能发现 首先我们先考虑50分,二维前缀和维护一下(反正我不记得公 ...
- eclipse中tomcat正常启动,但浏览器访问不了tomcat首页之tomcat配置问题
症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomc ...
- 火狐浏览器将网页保存为pdf
目录 火狐打印功能 火狐插件 save as pdf 深夜更博仙女镇 @ 有时候查一些技术博客之类的,当时收藏了,过一阵子再想查看的时候发现404了,所以稳妥的办法还是将把网页保存为pdf. 火狐打印 ...
- centos添加用户并赋予 root管理员权限
centos添加用户并赋予 root管理员权限 用centos时,root用户一般都是超级管理员使用的,一般不轻易给别人,但是有时候同事安装软件时需要root账号,又不得不给,只能重新建一个用户,并 ...
- JavaScript的Map和Set
JavaScript的Map和Set 1.map:映射(通过key获得value).增.删 2.set:增.删.判断是否包含某个元素 1. Map <!DOCTYPE html><h ...
- 油候插件grant的使用
// ==UserScript== // @name Test Baidu // @namespace http://www.baidu.com/ // @version 0.1 // @descri ...
- NVMe over Fabrics 协议Discovery服务交互过程跟踪
Discovery服务过程跟踪 对于NVMe over Fabrics的subsystem,有两种类型:Discovery子系统和NVM子系统.这里介绍与Discovery子系统相关的交互内容(即:在 ...