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

关于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. C#/net 使用Protocol Buffers入门

    Protocol buffers 是一个由谷歌开发的开源的编码机制用于将结构化的数据序列化或者反序列化,被设计成语言以及平台中立,protobuff比xml更简单比json还要紧凑一些,网上有一些关于 ...

  2. Aspectj 实现Method条件运行

    最近我花了半个小时实现了一个Method的按自定义条件运行的plugin,Condition-Run.实现场景是由于我所工作的客户经常会是在同一个代码集上实现多个Brand,所以有些功能只会限制是几个 ...

  3. Windows Azure Service Bus Notification Hub推送通知

    前言 随着Windows Azure 在中国的正式落地,相信越来越多的人会体验到Windows Azure带来的强大和便利.在上一篇文章中, 我们介绍了如何利用Windows Azure中的Servi ...

  4. 什么是P3O?

    P3O(Portfolio, Programme and Project Offices)项目组合.项目群和项目办公室资格认证. 是由英国商务部 OGC 于2008年10月28日发布的最新的最佳实践指 ...

  5. MVVM架构~knockoutjs系列之级联select

    返回目录 对于下拉列表框的绑定在之前的knockoutjs文章中已经介绍过,今天主要说一下级联的select,事实上,在knockoutjs里,是以数据绑定为中心的,而数据是以面向对象为前提的,而对于 ...

  6. [数据库连接池二]Java数据库连接池--C3P0和JDNI.

    前言:上一篇文章中讲了DBCP的用法以及实现原理, 这一篇再来说下C3P0和JDNI的用法. 1.1.C3P0数据源 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规 ...

  7. js生成随即字符串

    js生成随即字符串 /* *js生成随即字符串原来如此简单 *toString() radix argument must be between 2 and 36 */ function uuid() ...

  8. JQ动画的简单介绍

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>j ...

  9. java webservice 总结(学会读别人的webservice并且通过代理模式访问)

    公司做的系统之间的交互用到了webservice做交互,现在对webservice做一个总结. 1.配置已有的webservice webservice主要包括 xml/json:作为传输数据的格式 ...

  10. MongoDB修改器的使用1

    为什么要使用修改器?     通常我们只会修改文档的一部分,这时候更新整个文档就显得很麻烦,通常是通过原子性的更新修改器来完成. 1."$set"修改器    "$set ...