7.3 ADO.NET连接SQL数据库

  ADO.NET是.NET Framework中的一系列类库,它能够让开发人员更加方便的在应用程序中使用和操作数据。在ADO.NET中,大量的复杂的数据操作的代码被封装起来,所以当开发人员在ASP.NET应用程序开发中,只需要编写少量的代码即可处理大量的操作。ADO.NET和C#.NET、VB.NET不同的是,ADO.NET并不是一种语言,而是对象的集合。

7.3.1 ADO.NET基础
  ADO.NET是由微软编写代码,提供了在.NET开发中数据库所需要的操作的类。在.NET应用程序开发中,C#和VB.NET都可以使用ADO.NET。
  ADO.NET可以被看作是一个介于数据源和数据使用者之间的转换器。ADO.NET接受使用者语言中的命令,如连接数据库、返回数据集之类,然后将这些命令转换成在数据源中可以正确执行的语句。在传统的应用程序开发中,应用程序可以连接ODBC来访问数据库,虽然微软提供的类库非常的丰富,但是开发过程却并不简单。ADO.NET在另一方面,可以说简化了这个过程。用户无需了解数据库产品的API或接口,也可以使用ADO.NET对数据进行了操作。ADO.NET中常用的对象有:
1)SqlConnection:该对象表示与数据库服务器进行连接。
2)SqlCommand:该对象表示要执行的SQL命令。
3)SqlParameter;该对象代表了一个将被命令中标记代替的值。
4)SqlDataAdapter:该对象表示填充命令中的DataSet对象的能力。
5)DataSet:表示命令的结果,可以是数据集,并且可以同BulletedList进行绑定。
  通过使用上述的对象,可以轻松的连接数据库并对数据库中的数据进行操作。对开发人员而言,可以使用ADO.NET对数据库进行操作,在ASP.NET中,还提供了高效的控件,这些控件同样使用了ADO.NET让开发人员能够连接、绑定数据集并进行相应的数据操作。

7.3.2 连接SQL数据库
  ADO.NET通过ADOConnection连接到数据库。和ADO的Connection对象相似的是,ADOConnection同样包括Open和Close方法。Open表示打开数据库连接,Close表示关闭数据库连接。在每次打开数据库连接后,都需要关闭数据库连接。
1.建立连接
  在SQL数据库的连接中,需要使用.NET提供的SqlConnection对象来对数据库进行连接。在连接数据库前,需要为连接设置连接串,连接串就相当于告诉应用程序怎样找到数据库去进行连接,然后程序才能正确的与SQL建立连接,连接字串示例代码如下所示。
server='服务器地址';database='数据库名称';uid='数据库用户名';pwd='数据库密码';
上述代码说明了数据库连接字串的基本格式,如果需要连接到本地的mytable数据库,则编写相应的SQL连接字串进行数据库的连接,示例代码如下所示。
+展开
-C#
            string strcon;//声明连接字串
            strcon = "server='(local)';database='mytable';uid='sa';pwd='sa';";//设置连接字串

  上述代码声明了一个数据库连接字串,SqlConnection类将会通过此字串来进行数据库的连接。其中,server是SQL服务器的地址,如果相对于应用程序而言数据库服务器是本地服务器,则只需要配置为(loacal)即可,而如果是远程服务器,则需要填写具体的ip。另外,uid是数据库登录时的用户名,pwd是数据库登录时使用的密码。在声明了数据库连接字串后,可以使用SqlConnection类进行连接,示例代码如下所示。
+展开
-C#
            string strcon;//声明连接字串
            strcon = "server='(local)';database='mytable';uid='sa';pwd='sa';";//编写连接字串
            SqlConnection con = new SqlConnection(strcon);//新建SQL连接
            try
            {
                con.Open();//打开SQL连接
                Label1.Text = "连接数据库成功";//提示成功信息
            }
            catch
            {
                Label1.Text = "无法连接数据库";//提示失败信息
            }

  上述代码连接了本地数据库服务器中的mytable数据库,如果连接成功,则提示“连接数据库成功”,出现异常时,则提示“无法连接数据库”。
注意:在使用SqlConnection类时,需要使用命名空间using System.Data.SqlClient;而连接Access数据库时,需要使用命名空间using System.Data.OleDb。

2.填充DataSet数据集
  DataSet数据集表示来自一个或多个数据源数据的本地副本,是数据的集合,也可以看作是一个虚拟的表。DataSet对象允许Web窗体半独立于数据源运行。DataSet能够提高程序性能,因为DataSet从数据源中加载数据后,就会断开与数据源的连接,开发人员可以直接使用和处理这些数据,当数据发生变化并要更新时,则可以使用DataAdapter重新连接并更新数据源。DataAdapter可以进行数据集的填充,创建DataAdapter对象的代码如下所示。
+展开
-C#
            SqlDataAdapter da=new SqlDataAdapter("select * from news",con);//创建适配器

  上述代码创建了一个DataAdapter对象并初始化DataAdapter对象,DataAdapter对象的构造函数允许传递两个参数初始化,第一个参数为SQL查询语句,第二个参数为数据库连接的SqlConnection对象。初始化DataAdapter后,就需要将返回的数据的集合存放到数据集中,示例代码如下所示。
+展开
-C#
            DataSet ds = new DataSet();//创建数据集
            da.Fill(ds, "tablename");//Fill方法填充

  上述代码创建了一个DataSet对象并初始化DataSet对象,通过DataAdapter对象的Fill方法,可以将返回的数据存放到数据集DataSet中。DataSet可以被看作是一个虚拟的表或表的集合,这个表的名称在Fill方法中被命名为tablename。

3.显式DataSet
  当返回的数据被存放到数据集中后,可以通过循环语句遍历和显示数据集中的信息。当需要显示表中某一行字段的值时,可以通过DataSet对象获取相应行的某一列的值,示例代码如下所示。
+展开
-C#
            ds.Tables["tablename"].Rows[0]["title"].ToString();//获取数据集

  上述代码从DataSet对象中的虚表tablename中的第0行中获取title列的值,当需要遍历DataSet时,可以使用DataSet对象中的Count来获取行数,示例代码如下所示。
+展开
-C#
            for (int i = 0; i < ds.Tables["tablename"].Rows.Count; i++)//遍历DataSet数据集
            {
                Response.Write(ds.Tables["tablename"].Rows[i]["title"].ToString()+"<br/>");
            }

  DataSet不仅可以通过编程的方法来实现显示,也可以使用ASP.NET中提供的控件来绑定数据集并显示。ASP.NET中提供了常用的显示DataSet数据集的控件,包括Repeater、DataList、GridView等数据绑定控件。将DataSet数据集绑定到DataList控件中可以方便的在控件中显示数据库中的数据并实现分页操作,示例代码如下所示。
+展开
-C#
            DataList1.DataSource = ds;//绑定数据集
            DataList1.DataMember = "tablename";
            DataList1.DataBind();//绑定数据

  上述代码就能够将数据集ds中的数据绑定到DataList控件中。DataList控件还能够实现分页、自定义模板等操作,非常方便开发人员对数据开发。


7.3.3 ADO.NET过程
  从上一节中可以看出,在ADO.NET中对数据库的操作基本上需要三个步骤,即创建一个连接、执行命令对象并显式,最后再关闭连接。使用ADO.NET的对象,不仅能够通过控件绑定数据源,也可以通过程序实现数据源的访问。ADO.NET的过程如图7-20所示。
ADO.NET规范步骤
图7-20 ADO.NET规范步骤
从上图中可以归纳出,ADO.NET的规范步骤如下:
1)创建一个连接对象。
2)使用对象的Open方法打开连接。
3)创建一个封装SQL命令的对象。
4)调用执行命令的对象。
5)执行数据库操作。
6)执行完毕,释放连接。
掌握了这些初步的知识,就能够使用ADO.NET进行数据库开发。

加支付宝好友偷能量挖...


评论(0)网络
阅读(124)喜欢(0)Asp.Net/C#/WCF