C#中常见的简答题(第三天)

8.简述ADO.NET中五个主要对象

A.Connection:

           主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。

B.Command:

            主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除等指令,以及调用存在数据库中的存储过程等。这个对象是架构再Connection对象上,也就是Command对象是透过连接到数据库。

C.DataAdapter:

            主要是再数据源以及DataSet之间执行数据传输的工作,它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中。这个对像是架构在Connand对象上,配合DataSet使用的功能。

D.DataSet:

            这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来,DataSet是放在内存中的。DataSet的能力不只是可以储存多个Table而已,还可以透过DataAdapter 对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet对象可以说是ADO.NET中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们将DataAdapter对象当做DataSet对象以及数据源间传输数据的桥梁。DataSet包含若干DataTable、DataTable包含若干DataRow。

E.DataReader:

              当我们只需要循环的读取数据而不需要其他操作时,可以使用DataReader对象。DataReader对象只是一次一条向下循序的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序的内存中的,只能(通过游标)读取当前行的数据,而且这些数据是只读的,并不允许其他的操作。因为DataReader在读取数据的时候限制了每次只读取一条,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。

9.ADO.NET支持哪两种方式来访问关系数据库

连接模式:

               可通过command(命令)对象执行SQL语句或存储过程。如果执行的结果返回的是一个记录集,则可以使用DataReader(数据读取器)对象读取数据。这里需要注意,DataReader ADO.NET的连接模式只能返回向前的、只读的数据,这是因为DataReader对象的特性决定的。

非连接模式:

             在数据集方式中,操作数据的基本过程是首先使用数据适配器将数据加载到内存中(数据集对象),在数据集对象中操作数据,然后再使用数据适配器将更改会写到数据库中。 就现在的经验来说,非连接模式大大减少了对连接的占用频率。

 

 

热门文章

暂无图片
编程学习 ·

Nginx学习笔记

1.Nginx简介 Nginx 是一个高性能的HTTP和反向代理服务器,特点是占内存少,并发能力强。Nginx转为性能优化而开发,性能是器最重要的考量,实现上非常注重效率,能经受住高负载的考验,有报告表明能支持的高达50000个并发连接数。 百度,腾讯,网易,淘宝等都在使用Nginx. 2.反…
暂无图片
编程学习 ·

3.1.2 Jsoup请求URL

org.jsoup.Jsoup类可以用来处理连接操作。在org.jsoup.Jsoup类中提供了connect(String url)方法来创建一个新连接,该方法的实现依赖于Java网络通信包java.net。在创建连接之后,可通过具体请求方法(GET或POST等)获取URL对应的HTML文件。 如需要采集某页面中的文本内容。首先,…
暂无图片
编程学习 ·

数据重删和数据压缩主流技术分析

数据压缩随着计算能力的不断提升,当代社会正在产生越来越巨量的数据,数据压缩也被应用在生活的方方面面,如在网上打开的图片、视频、音频等都是经过压缩的。压缩可以分为无损压缩和有损压缩。无损压缩可以通过压缩文件完全恢复原始文件;而有损压缩则会丢失一部分信息。对于…
暂无图片
编程学习 ·

还是别看学位论文

最近我实验室的一个组在做疫情预测的工作。效果还行,论文也写的差不多了。不过上面的老师说引的文章都太老了,让再加点新的。于是今天下午我就和大家一起看文献。之所以之前引的都比较老,主要是因为传染病预测这块分两派,一派是理论建模派,主要工具就是微分动力模型,一般…
暂无图片
编程学习 ·

springboot整合redis之史上最详步骤

springboot整合redis之史上最详步骤前言一、了解Redis一、搭建Redis环境1.Redis安装2.Redis可视化工具安装与连接二、SpringBoot整合Redis1.新建SpringBoot项目2.SpringBoot集成redis3.使用RedisTemplate操作Redis3.1实体类User3.2 工具类RedisUtil3.3 配置类RedisConfig3.4 Us…
暂无图片
编程学习 ·

设计模式-工厂模式

关注公众号 JavaStorm 获取更多精彩工厂模式定义 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化…
暂无图片
编程学习 ·

【整理】信息安全系统与技术课程复习整理

难得自己整理……信息系统安全与技术选择 15 填空 15 名词解释 4*6 简答 6*6 方案设计 10根据信息流动过程划分的安全威胁:中断威胁、截获威胁、篡改威胁、伪造威胁。 CIA安全需求模型:保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。 信息保障体…
暂无图片
编程学习 ·

windows10系统-2-安装Nodejs及SocketIO

(1)双击node-v12.14.1-x64.msi CMD>npm --version查看npm的版本 CMD>npm -v (2)使用淘宝镜像的命令 CMD>npm install -g cnpm --registry=https://registry.npm.taobao.org CMD>npm list -g查看所有全局安装的模块 【全局安装所在路径C:\Users\user\AppData\Roamin…
暂无图片
编程学习 ·

Spring Boot, MySQL, JPA, Hibernate Restful CRUD API Tutorial

Spring Boot MySQL JPA Hibernate Restful CRUD API TutorialSpring Boot has taken Spring framework to the next level. It has drastically reduced the configuration and setup time required for spring projects. Spring Boot将Spring框架提升到了一个新的高度。它大大…
暂无图片
编程学习 ·

2. judgeSquareSum

忘记是自然选择,重要的是抽取学习方法双指针 --判断某一非负整数是否是两数平方和(easy) leecode输入:5 输出:true 5=1^2 + 2^2 思路:等于从一个有序数组找两个数平方和为target,注意的是最大值肯定小于Math.sqrt(target)public boolean judgeSquareSum(int c) {if (c < 0)…
暂无图片
编程学习 ·

Java 中内部类简单概念

概念:在一个类内部定义的类 1.内部类会生成独立的.class文件。文件名Outer$Inner.class 2.内部类可以访问外部类的私有属性,从而不破坏外部类的封装性 成员内部类(类比成员变量) 1.定义位置:类以内,方法以外 2.如何创建对象 Outer o = new Outer(); //创建外部类对象 Out…
暂无图片
编程学习 ·

FTP内网穿透 报错 200 227 451 注意事项

FTP内网穿透 报错 200 227 451 注意事项 今天通过FileZilla简单搭建的内网的FTP服务器,由于客户端和服务端不在同一个网段,在路由器中做了内网映射,奇怪的是所有搭建完成,在本机也可以访问FTP,唯独去了另外一个网段就访问不了。 再三检查: 1、端口是否做好映射?常用FTP端…
暂无图片
编程学习 ·

【java基础(五十)】为什么要使用泛型程序设计

从Java程序设计语言1.0版发布以来,变化最大的部分就是泛型。致使Java SE 5.0中增加泛型机制的主要原因是为了满足1999年制定的最早的Java规范需求之一(JSR 14)。专家组花费了5年左右的时间用来定义规范和测试实现。 泛型正是我们需要的程序设计手段。使用泛型机制编写的程序…
暂无图片
编程学习 ·

centos自用命令备份

上传 scp -p E:\abc\requirement.txt root@132.232.10.218:/root/stock 下载 scp root@103.51.15.130:/root/project/log/2020-01-07-12-22-15.log D:\ ----------------------------------------- 启动多个脚本 python3 zmq.py & python3 open.py & python3 clos.py &…
暂无图片
编程学习 ·

SpringBoot集成Swagger-UI

1、添加如下maven依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version></dependency><dependency><groupId>io.springfox</groupId><…
暂无图片
编程学习 ·

分离springboot中的lib

仅供参考: 这次分离lib源于疫情期间连公司内网上传jar过于缓慢。在一个项目构建之初,所使用的依赖基本都已经确定,因此大概率不会对项目有大的影响。(非适用于所有场景) 首先我们要引入插件: <!-- 分离lib --> <plugin><groupId>org.apache.maven.plug…
暂无图片
编程学习 ·

数据类型及处理

数据类型 数据类型包括内置类型和自定义类型。 内置类型包含基本类型和复合类型。 自定义类型包含用户自定义类型和标准库中定义的类型。 基本类型包含算术类型和空类型。 算术类型包含整值类型和浮点型。 整值类型包含字符类型,布尔类型和整数类型。 复合类型包含指针,引用,…
暂无图片
编程学习 ·

CodeForces 1371C A Cookie for You (贪心)

题意:v个香草饼干,c个巧克力饼干。有两种人: ①a个,若v>c,拿走香草饼干,否则拿走巧克力饼干。 ②b个,若v>c,拿走巧克力饼干,否则拿走香草饼干。 求安排每个人的进场顺序,是否能让所有人都吃到饼干。 题解:贪心 我们发现,无论香草和巧克力饼干数量如何,若①无…
暂无图片
编程学习 ·

flex布局总结,一帖浏览完。

1.flex-direction 设置主轴方向2.justify-content 设置主轴上子元素的排列方式3.align-content 设置侧轴上的子元素的排列方式(只应用于有多行子元素)4.align-items 设置侧轴上的子元素的排列方式(只应用于有单行子元素)
暂无图片
编程学习 ·

Linux加密框架的算法管理(一)

算法注册流程静态算法模块初始化-分组算法模块初始化 AES算法模块(aes_generic.c)的初始化接口aes_init实现向加密框架注册AES算法的功能,如下所示。 static int __init aes_init(void) {return crypto_register_alg(&aes_alg); }-哈希算法模块初始化 MD5算法模块(md5.…