码迷,mamicode.com
首页 > Web开发 > 详细

温故而后知新——对ado.net中常用对象的一些解释

时间:2014-11-24 20:48:55      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

在使用ado.net连接数据库获取数据,一般的步骤是:

1、设置好web.config    //用来设置服务器数据库的地址以及登录名密码

2、创建Connection对象    //用来创建访问数据库的连接

3、创建Command对象    //用来发送命令(写sql语句)

4、用DataReader获取数据    //获取数据库数据

5、利用DataSet储存获取到的数据    //容器

6、关闭Connection对象和DataReader/DataAdapter的连接  //为了性能,不关闭可能会报错

 (其中3、4两步可以用DataAdapter对象一步代替)

一、设置web.config

打开web.config,直接在根节点加入:

<connectionStrings>
<add name="Try" connectionString="data source=数据库地址;initial catalog=数据库名称;persist security info=True;user id=登录名;password=密码;"/>
</connectionStrings>

变成

<configuration> //根节点
  <system.web>
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
  </system.web>
  <connectionStrings>
    <add name="Try" connectionString="data source=数据库地址;initial catalog=数据库名称;persist security info=True;user id=登录名;password=密码;"/>
  </connectionStrings>
</configuration>

这样就添加了一个连接字符串,名字叫做Try

 

二、Connection对象

现在要通过刚刚添加的连接字符串连接数据库了,获取web.config中的连接字符串后新建Connection对象:

using System.Configuration;
using System.Data.SqlClient;


string connectionString = ConfigurationManager.ConnectionStrings["Try"].ConnectionString; //取名字为Try的连接字符串
SqlConnection conn = new SqlConnection(connectionString); //用这个连接字符串新建Connection对象

 

 

三、Command对象

在使用Command对象之前,必须保证我们的Connection对象已经处于open状态:

conn.Open();

 

Commond对象的创建,无论用哪种形式,只要保证它与Connection对象的联系以及我们写的sql语句传进去了就行:

SqlCommand cmd = conn.CreateCommand(); //通过之前的Connection对象创建
cmd.CommandText = "select top 10 * from Project";  //写sql语句

//或者下面的直接构造函数的形式

SqlCommand sc = new SqlCommand("select top 10 * from Project", conn);

 

它有三个常用方法

1.ExecuteNonQuery();  该方法适用于非查询语句,返回受影响的行数(int)

cmd.CommandText = "update Project set Name=‘tom‘ where id=3";
int result = cmd.ExecuteNonQuery(); //返回1,即有一条数据被修改

 

2.ExecuteScalar(); 该方法返回查询结果的第一行第一列数据(object)

cmd.CommandText = "select count(*) from Project";
int result = int.Parse( cmd.ExecuteScalar() ); //返回Project表的总行数,由于返回类型是object,因此需要转换成int

 

3.ExecuteReader();   该方法返回一个DataReader对象,用于获取查询的结果,后面详解

 

 

 

四、DataReader对象和DataAdapter对象

1.DataReader的用法

 DataReader可以通过Command的ExecuteReader()方法返回,它的核心方法是Read():

SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())  //Read方法返回一个bool值,如果有值就返回true并前进到下一行,当整个表读取结束了就返回false
 {
        Response.Write(dr.GetInt32(0));  //这里假设表的第一列是int型,GetInt32()方法需要传一个int参数,从0开始的列的索引值
 }    

  这样把查询结果的第一列就读取出来的,它适合快速获取一些信息

  读取完之后记得关闭DataReader:

dr.Close();
dr.Dispose();

 

 

 

2.DataAdapter的用法

 DataAdapter对象也称之为数据适配器对象,用来填充一个DataSet容器:

DataSet a=new DataSet("ds1");
SqlDataAdapter ada = new SqlDataAdapter("select top 10 * from Project", conn);
ada.Fill(a);

 

注:

在用完后记得要关闭Connection和DataReader/DataAdapter:

ada.Dispose();
dr.Dispose();
conn.Close(); conn.Dispose();

这其实很麻烦,用完了还得关闭,为了图简便,可以使用using语法。

其完整的读取数据并返回DataSet示例如下:

private DataSet GetDataSet(string sql)
{
    string connectionString = ConfigurationManager.ConnectionStrings["Try"].ConnectionString; //取名字为Try的连接字符串
    DataSet ds = new DataSet("ds1");
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
       using (SqlDataAdapter ada = new SqlDataAdapter(sql, conn))
         {
            ada.Fill(ds);
         }
    }
    return ds;
}

 

温故而后知新——对ado.net中常用对象的一些解释

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/dengshaojun/p/4118348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!