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

关于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. AMD加载器实现笔记(五)

    前几篇文章对AMD规范中的config属性几乎全部支持了,这一节主要是进一步完善.到目前为止我们的加载器还无法处理环形依赖的问题,这一节就是解决环形依赖. 所谓环形依赖,指的是模块A的所有依赖项的依赖 ...

  2. MapReduce原理与设计思想

    简单解释 MapReduce 算法 一个有趣的例子 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃? MapReduce方法则是: 给在座的所有玩家中分配这摞牌 让每个玩家 ...

  3. 利用avalon 实现一个简单的成绩单

    本文的灵感是来自Halower的这篇博文,他是使用knockout与jQuery实现的.不过我觉得MVVM本来就强大的事件绑定功能,因此用jQuery 是多此一举.另,他也用了一些面向对象的写法.我个 ...

  4. 《OOC》笔记(2)——C语言实现trycatchfinally

    本篇就偷个懒吧,实在打不起精神. #ifndef _TRY_THROW_CATCH_H_ #define _TRY_THROW_CATCH_H_ #include <stdio.h> #i ...

  5. String的length()和Array的length

    String是个final修饰的最终类,不能被继承,String中属性都设置为private,方法为public,并不提供set方法,想要获得字符串的长度必须调用length()方法这个长度是确定的, ...

  6. PMO到底什么样?(3)

    继续上一篇,PMO到底什么样?到这篇,本文就结束啦. 出色基地COE,4大典型职责 咱们知道悉数的公司,它都是要不断地持续改进和优化,包含公司内组织级的项目处理的机制,也需要不断的优化和进步.一般咱们 ...

  7. EF架构~二级域名中共享Session

    回到目录 对于一个有点规模的网站,都会有各个子网站,说是子网站,其实也都是独立的站点,一般通过二次域名来分开,如www.zzl.com,它可以有很多子网站,如image.zzl.com,file.zz ...

  8. offsetTop,offsetHeight,clientHeight,scrollHeight,scrollTop区别

    这些高度相信很多同学都搞不清楚吧.这里我通过本地测试,发现了区别. 以聊天窗口为例. 元素(class='content')高度444px,其中上下padding分别是10px,margin为0.距离 ...

  9. H5常用代码:适配方案5

    此方案跟方案4是同一原理,也是通过REM实现的,能单独归类出一个方案,是因为它有一定的实用价值,当你遇到追求完美,追求到一像素的UI或者产品时,那此方案将解决你的困境. 方案5主要是用来解决一像素边框 ...

  10. How Google TestsSoftware - Part Two

    In order for the "you buildit, you break it" motto to be real, there are roles beyond the ...