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