一、Connection对象
指定某个具体数据源以及提供登陆方式及用户名与密码。
Connection对象的主要成员:
1、ConnectionString属性:连接字符串,指定要操作的数据库以及登录方式和用户名密码。
连接字符串的两种配置过程:
利用ConnectionString直接在应用程序中配置。
利用配置文件配置。在WINFORM中利用App.config文件配置;在WEB中利用web.config文件配置。
2、open()方法:打开与数据库的连接
若在连接数据库过程中配置连接字符串错误,则在打开是会抛出异常。
3、close()方法:数据访问完成后关闭连接
连接数据库的步骤:
1、定义连接字符串
(1)使用SQL用户名,密码验证
Data Source=服务器名称;Initial Catalog=数据库名;User ID=用户名;Pwd=密码(若没有密码,可省略)
(2)使用WINDOWS身份验证
Data Source=服务器名;Initial Catalog=数据库名;integrated security=sspi;
2、创建Connection对象
SqlConnection Connection = new SqlConnection(ConnString);
其中ConnString为连接字符串
3、打开与数据库的连接
Connection.Open();
源代码
(1)添加应用程序配置文件(注意不要修改文件名称App.config),在configuration代码中输入一下配置代码
| 1 2 3 4 5 | <configuration>    <connectionString>    <add name="MyConStr"ConnectionString=Data Source=服务器名称;Initial Catalog=数据库名;User ID=用户名;Pwd=密码>    </connectionString></configuration> | 
在代码窗口下添加引用system.configuration,在窗口中输入一下代码:
| 1 2 3 4 5 6 7 | publicstringMyConnString{    get    {        returnsystem.ConfigurationMnager.ConnectionStrings["MyConStr"].ConnnectionString.tostring    }} | 
以上方法便可以通过访问配置文件节点的方法连接数据库。
(2)
直接在代码框中输入以下代码,便可以直接连接数据库:
| 1 2 3 4 5 6 7 | publicstringMyConnString{    get    {        return"Data Source=服务器名称;Initial Catalog=数据库名;User ID=用户名;Pwd=密码"    }} | 
二、Command对象
执行命令并从数据源中返回结果。其命令的内容可以是Sql语句或者是一个存储过程。Command命令语句可以把Sql语句或者是存储过程通过connection的连接发送给数据源(数据库服务器),然后由数据库服务器执行这些命令,最后再把这些命令的结果通过Connection返回给应用程序。
Command对象的主要成员:
    1、Connection属性:Command对象使用的数据连接。
2、CommandText属性:执行SQL语句(增、删、查、改)。
3、ExecuteNonQuery()方法:执行不返回行的语句,如update。
4、ExecuteReader()方法:返回DataReader对象,查询结果直接存放在DateReader中,但是DataReader的实例化不是通过NEW语句实现,而是通过ExcuteReader方法来实现。
5、ExcuteScalar:返回单个值(第一行第一列)。
使用Command步骤:
1、创建数据库连接。
2、定义SQL语句。
3、创建Command对象。
4、执行命令。
两种实例化连接对象的方法:
(1)SqlConnection conn = new SqlConnection(MyConStr);
(2)SqlConnection conn = new SqlConnection();
conn.ConnectionString = MyConString;
源代码
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | publicintExcuteSQLReturnInt(stringsql){    SqlConnection conn = newSqlConnection(MyConStr);    try    {        SqlCommand cmd = newSqlCommand(sql,conn)        //或者cmd.Connection = conn;            //cmd.CommandText=sql        if(conn.state==ConnectionState.close)        {            conn.Open();        }        intcount = cmd.ExcuteNonQuery();        returncount;    }    catch(Exception ex)    {        return0;    }    finally    {        conn.close();        conn.dispose();    }} | 
| 1 | 注:因为客户端传来的sql语句有可能存在语法问题或者存在注入攻击等问题,所以我们可以用trycatch来抛出异常。 | 
若在sql语句中存在参数,则代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | publicintExcuteSQLReturnInt(stringsql,SqlParameter[] pars){    SqlConnection conn = newSqlConnection(MyConStr);    try    {        SqlCommand cmd = newSqlCommand(sql,conn)        //或者cmd.Connection = conn;            //cmd.CommandText=sql        if(conn.state==ConnectionState.close)        {            conn.Open();        }        if(pars!=null&&pars.Length>0)        {            foreach(SqlParameter p inpars)            {                cmd.Parameters.Add(p);            }        }        intcount = cmd.ExcuteNonQuery();        returncount;    }    catch(Exception ex)    {        return0;    }    finally    {        conn.close();        conn.dispose();    }} | 
三、DataAdapter 数据适配器对象
通过DataAdapter可以将数据库中的数据传输到DataSet中,相当于数据运输的工具。
注:使用DataAdapter前必须要完成Connection的连接工作。
Dataadapter主要的属性和方法:
1、SelectCommand属性:从数据库检索数据的Command对象。
2、Fill()方法:向DataSet中的表填充数据。
3、update()方法:将DataSet中的数据提交到数据库中。
使用DataAdapter对象填充DataSet数据集的步骤:
1、创建DataAdapter对象并且使用Connection连接数据源。
SqlDataAdapter对象名 = new SqlDataAdapter(查询所用sql语句,数据库连接)
2、使用Fill()方法填充DataSet中的表
DataAdapter对象.fill(数据集对象,"数据表名称字符串")
注:若无数据表名称,则会把数据默认放到数据集对象的第一个表中。
源代码:
| 1 2 3 4 5 6 7 8 9 | publicDataSst SelectSqlReturnDataSet(stringsql){    SqlConnection conn = SqlConnection(MyConnString);    SqlAdapter sda = newSqlDataAdapter(sql,conn);    DataSet ds = newDataSet();    sda.fill(ds);    returnds;} | 
若Sql查询语句中含有参数,则修改代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | publicDataSst SelectSqlReturnDataSet(stringsql,SqlParameter[] pars){    SqlConnection conn = SqlConnection(MyConnString);    SqlAdapter sda = newSqlDataAdapter(sql,conn);    if(pars!=null&&pars.Length>0)    {        foreach(SqlParameter p inpars)        {            sda.SelectCommand.Parameters.add(p);        }    }    DataSet ds = newDataSet();    sda.fill(ds);    returnds;} | 
若传输的既可能是Sql语句也可能是存储过程,则修改代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | publicDataSst SelectSqlReturnDataSet(stringsql,SqlParameter[] pars,CommandType type){    SqlConnection conn = SqlConnection(MyConnString);    SqlAdapter sda = newSqlDataAdapter(sql,conn);    if(pars!=null&&pars.Length>0)    {        foreach(SqlParameter p inpars)        {            sda.SelectCommand.Parameters.add(p);        }    }    sda.SelectCommand.CommandType = type;    DataSet ds = newDataSet();    sda.fill(ds);    returnds;} | 
四、DataReader对象
用于在数据库中读取数据,一般用于读取一条数据(也可读取多条)。
DataReader的主要属性和方法:
1、HasRows属性:是否返回了结果。
2、Read()方法:前进到下一条记录,返回结果为布尔值,读取之后若下一行有值则返回为true,若下一行没有值则返回false。
3、close()方法:关闭DataReader对象
使用DataReader读取数据的基本步骤:
1、创建Command对象。
2、调用ExcuteReader()创建DataReader对象。
3、调用DataReader的Read()方法逐行读取数据。
4、读取某列的数据:(type)dataReader[]
获取某列的值可以在上面的方括号中用以下两种表是方法:
(1)指定列的索引,从0开始
(2)指定列名
5、关闭DataReader对象
注:(1)DataReader是直接将数据库中的数据读取到用户的客户端(应用程序或者某个控件上)
(2)DataReader使用后必须关闭
源代码
| 1 2 3 4 5 6 7 8 9 10 11 | publicSqlDataReader SelectSqlReturnDataReader(stringsql){    SqlConnection conn = newSqlConnection(MyConnString);    SqlCommand cmd = newSqlCommand(sql);    if(conn.ConnectionState.closed())    {        conn.Open();    }    SqlDataReader reader = cmd.ExcuteReader(CommandBehavior.CloseConnection);    returnreader;} | 
注:
| 1 | CommandBehavior.CloseConnection 可以自动在应用程序读取完数据之后自动关闭连接。 | 
五、DataSat
DataSet数据集可以简单理解为一个临时数据库,可以将数据源的数据保存在内存中并且它是独立于任何数据库的。DataSet是由若干个DataTable组成的。
创建DataSet基本步骤:
创建一个DataSet,可以指定一个数据集的名称,如果不指定数据集的名称则系统默认为"NewDataSet"。
DataSet 数据集对象 = new DataSet("数据集的名称字符串")
源代码
| publicDataTable SelectSqlReturnDataTable(stringsql,SqlParameter[] pars,CommandType type){    SqlConnection conn = newSqlConnection(MyConnString);    SqlDataAdapter sda = newSqlDataAdapter(sql,conn);    DataTable dt = newDataTable;    sda.Fill(dt);    returndt;} | 
或者
| 1 2 3 4 5 6 7 8 | publicDataTable SelectSqlReturnDataTable(stringsql,SqlParameter[] pars,CommandType type){    SqlConnection conn = newSqlConnection(MyConnString);    SqlDataAdapter sda = newSqlDataAdapter(sql,conn);    DataSet ds = newDataSet();    sda.Fill(ds,"myTable");     //其中myTable为ds中的一张表    returnds.tables["myTable"];  } | 
原文:http://www.cnblogs.com/darrenliu/p/4412666.html