最近的一段时间自己的状态还是不错的,早上,跑步,上自习看书,下午宿舍里面编程实战,晚上要么练习代码,要么去打球(在不打就没机会了),生活还是挺丰富的。

关于C#的基础回顾就先到前面哪里,这些要自己在工作中慢慢的去体会,不是说看书就可以掌握的。我们都是从学生时代过来的知道每个人的学习情况是不一样的,所以找到自己的学习节奏是最好不过的。

下面是关于访问数据库[ADO.NET]的学习,之前刚开始学习的时候把这些基本的都过了一遍,但是长时间不使用,一些基本的用法还是会遗忘的。

一:关于ADO.NET中基本名称的解释

现在我才知道ADO.NET里面分为连接类和断开连接类两种,这些都是从一些基本的关键字(就先这么叫)来区分的。

连接类:

Connection,  Command,  DataReader和 DataAdapter

连接类可以提取和更新底层数据源中的数据。每个数据提供程序负责实现连接类。

  • Connection

Connection对象表示与数据源的一次单独的会话,Connection类指定了连接到数据源必须的验证信息。

  • Command

Command对象使用一个已建立的Connection对象,对数据源执行SQL语句和存储过程。CommandText属性包含了对数据源所执行的sql语句。

  • DataReader

DataReader提供了对结果集的只前,只读的访问。DataReader对象提供了访问数据的最佳性能,避免了DataSet相关联的开销。可以通过执行Command类的ExecuteReader()方法创建一个DataReader对象。我们可以通过这个对象读取到里面具体的值。里面有个.reader()方法我们可以通过这个来得到。

  • DataAdapter

DataAdapter通过从数据源提取数据,并填充一个(断开连接)的DataSet/DataTable,这个也可以进行更新,反着来。

断开连接类:

DataSet, DataTable, DataColumn,DataRow, DataView, DataRelation和Constraint.

断开连接类可以对于连接类提供的数据进行离线的访问和操作,以后在使用与底层的数据源进行同步。

  • DataSet

DataSet是存储在内存中的一个断开连接的关系数据库(不和本地的有任何关系),提供高级浏览功能,作为其它对象的容器,包括DataTable,DataRows,DataColumn我们可以在代码中使用这些对象。

  • DataTable

DataTable表示加载到内存中的数据的单个表,可以独立存在,也可以作为DataSet中的一部分。

  • DataRow

DataRow表示DataTable中的一行数据

  • DataColumn

DataRow表示DataTable中的一列数据

关于上面方法,属性的基本操作

    /// <summary>
/// 关于ADO.NET中连接类和断开连接类的学习.
/// </summary>
class Program
{
static void Main(string[] args)
{
string connectionString = "";
string sql = "";
SqlConnection conn=new SqlConnection(connectionString);
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.CommandType=CommandType.Text; //这里可以修改,要是存储过程的话直接就修改了,这个是枚举类型。 // 1 :使用SqlDataReader来操作
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(); //返回结果: System.Data.SqlClient.SqlDataReader 对象。
dr.Read();
//下面就可以取出我们需要的数据了,要是需要多次while()来循环.
string data1=dr.GetString(0); //一次出现一行数据。
conn.Close();
dr.Close(); // 2 : 使用SqlDataApadter来操作
conn.Open();
//声明DataTable和DataSet它们是断开连接类,相当于本地的数据库一样。
DataTable table = new DataTable();
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(cmd);
da.Fill(table); //把数据加载到DataTable中,
da.Fill(ds); //把数据加载到DataSet中,
conn.Close();
//我们可以在上面关闭的情况下,在DataTable和DataSet中找到数据来使用。 // 3 :关于cmd的一些常用的方法。
// ExecuteScalar()+ 执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
object rowColumn = cmd.ExecuteScalar(); // ExecuteNonQuery() +对连接执行 Transact-SQL 语句并返回受影响的行数。
int row=cmd.ExecuteNonQuery(); // ExecuteReader() +将 CommandText 发送到 Connection并生成一个 SqlDataReader并返回。
SqlDataReader sqa = cmd.ExecuteReader();
conn.Close();
}
}

ADO.NET基础巩固-----连接类和非连接类的更多相关文章

  1. 406 UDP协议是面向非连接的协议

    HTTP The Definitive Guide   Table 3-1. Common HTTP methods   Method Description Message body?   GET ...

  2. 406 UDP协议是面向非连接的协议 Keep-Alive

    HTTP The Definitive Guide   Table 3-1. Common HTTP methods   Method Description Message body?   GET ...

  3. 派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good

    大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸.我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree ...

  4. 派生类地址比基类地址少4(CDerived对象的起始地址存放的是虚表指针vptr,也就是子类的第一项内容。接下来的是基类的成员变量,接下来再是自身的成员变量)

    大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸.我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree ...

  5. “ping”命令的原理就是向对方主机发送UDP数据包,HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”

    Socket  是一套建立在TCP/IP协议上的接口不是一个协议 应用层:  HTTP  FTP  SMTP  Web 传输层:  在两个应用程序之间提供了逻辑而不是物理的通信(TCP  UDP) T ...

  6. C++嵌套类及对外围类成员变量的访问

    C++嵌套类及对外围类成员变量的访问 在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类. 定义嵌套类的目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象.这样可以提高类的抽象能 ...

  7. Java基础 -- 嵌套类(非静态嵌套类、静态嵌套类)

    可以将一个类的定义放在另一个类的内部定义,这样的类就被称为嵌套类,包含嵌套类的类被称为外部类(outer class),也可以叫做封闭类. 嵌套类可以分为两种: 静态嵌套类(Static Nested ...

  8. ADO.NET 连接方式和非链接方式访问数据库

    一.//连接方式访问数据库的主要步骤(利用DataReader对象实现数据库连接模式) 1.创建连接对象(连接字符串) SqlConnection con = new SqlConnection(Co ...

  9. .Net Core 系列:2、ADO.Net 基础

    目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...

随机推荐

  1. MQTT和WebSocket

    严格来说,MQTT跟WebSocket关系不大.他们不是在一个层级的.   MQTT和TCP.WebSocket的关系可以用下图一目了然:   参考资料: http://www.zhihu.com/q ...

  2. HTTP解析

    前言 B/S网络架构的核心是HTTP,掌握HTTP对一个从事互联网工作的程序员来说非常重要.要理解HTTP,最重要的是要熟悉HTTP的HTTP Header,HTTP Header控制着互联网上成千上 ...

  3. 【C语言学习】《C Primer Plus》第8章 字符输入/输出和输入确认

    学习总结 1.缓冲区分为完全缓冲区(fully buffered)I/O和行缓冲区(line-buffered)I/O.对完全缓冲输入来说,当缓冲区满的时候会被清空(缓冲区内容发送至其目的地).这类型 ...

  4. Python自动化测试(1)-自动化测试及基本技术手段概述

    生产力概述 在如今以google为首的互联网时代,软件的开发和生产模式都已经发生了变化, 在<参与感>一书提到:某位从微软出来的工程师很困惑,微软在google还有facebook这些公司 ...

  5. 一天一小段js代码(no.2)

    (一)可以用下面js代码来检测弹出窗口是否被屏蔽: var blocked = false ; try { /*window.open()方法接受4个参数window.open(要加载的url,窗口目 ...

  6. SQL Server 性能优化之——T-SQL 临时表、表变量、UNION

    这次看一下临时表,表变量和Union命令方面是否可以被优化呢? 阅读导航 一.临时表和表变量 二.本次的另一个重头戏UNION 命令 一.临时表和表变量 很多数据库开发者使用临时表和表变量将代码分解成 ...

  7. Ubuntu下解决adb devices:???????????? no permissions的方法

    之前一直都是在windows下进行开发的,但是这次由于一个小模块用的东西只能在linux下运行,所以就发生了这么一系列的问题环境:虚拟机Vmware下的Ubuntu12.10事件:连接android手 ...

  8. 7张图片学习VIM教程

    7张图片学习VIM教程 张图片设置为桌面背景,时不时的能看上一眼.慢慢就学会VIM了. VIM lesson 1 VIM lesson 2 VIM lesson 3 VIM lesson 4 VIM ...

  9. 国外社交网站获取分享数量APIs

    之前有一篇文章详细介绍了如何获取网页在Facebook,Twitter和LinkedIn社交平台上分享的数量,点击这里查看.这里再扩充一下! Twitter GET URL: http://cdn.a ...

  10. WebApi系列~通过HttpClient来调用Web Api接口

    回到目录 HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api ...