ADO.NET简介(一)

      网站开发 2006-2-9 8:59
ADO.NET简介

ADO.NET 概述

操作 Microsoft SQL Server 数据库,使用 System.Data.SqlClient 命名空间中的三个类:
SqlConnection:代表一个到Microsoft SQL Server数据库的打开的连接
SqlCommand:代表一个SQL语句或存储过程
SqlDataReader:代表从数据库查询返回的结果

操作其他数据库,使用 System.Data.OleDb 命名空间中的三个类:
OleDbConnection:代表一个打开的数据库连接
OleDbCommand:代表一个SQL语句或存储过程
OleDbDataReader:代表从数据库查询返回的结果

常见的数据库任务

打开数据库连接:要访问数据库,首先要创建和打开数据库连接。
①连接SQLServer
string strconn_sql="Server=localhost;uid=sa;pwd=diffmaker;database=Diffmaker";
SqlConnection conn_sql=new SqlConnection(strconn_sql);
conn_sql.Open();
②连接Access
string strconn_oledb="Provider=Microsoft.Jet.OLEDB.4.0;";
strconn_oledb += ("Data Source="+Server.MapPath("myAccess.mdb"));
OleDbConnection conn_oledb=new OleDbConnection();
conn_oledb.ConnectionString=strconn_oledb;
conn_oledb.Open();

从数据库表获取记录
在ASP.NET页面中执行Select语句需要完成以下四个步骤
①创建和打开数据库链接
②创建一个代表要执行的SQL Select语句的数据库命令
③用ExecuteReader方法执行这个命令,并且返回一个DataReader
④遍历DataReader,显示查询的结果
DataReader代表一个只向前的数据库记录流。这意味着它只代表一个记录,要想获取流中的下一个记录,必须调用Read()方法。要想显示从查询返回的所有记录,必须反复调用Read()方法,直到达到了流的末尾。一旦经过了一个记录,就不能回头了。
SqlDataReader类的Read()方法在被调用时做两件事。首先,如果存在下一个记录,那么此方法返回True,否则返回False。其次,如果存在下一个记录,那么此方法将DataReader推进到下一个记录。
DataReader类自动地将返回的值转换为合适的.NET数据类型。
Varchar  string
Int  int32
Money  decimal


示例:
//创建和打开数据库链接
string strconn_sql="Server=localhost;uid=sa;pwd=diffmaker;database=Diffmaker";
SqlConnection conn_sql=new SqlConnection(strconn_sql);
conn_sql.Open();
//创建一个代表要执行的SQL Select语句的数据库命令
SqlCommand cmd_sql=new SqlCommand("SELECT * FROM v_order_cancel",conn_sql);
//用ExecuteReader方法执行这个命令,并且返回一个DataReader
SqlDataReader dr_sql=cmd_sql.ExecuteReader();
//遍历DataReader,显示查询的结果
while(dr_sql.Read())
{
  for(int i=0;i<dr_sql.FieldCount;i++)
  {
    Response.Write("\n");
    Response.Write(dr_sql.GetName(i)+":"+dr_sql[i]);
  }
  Response.Write("\n");
}
//关闭DataReader
dr_sql.Close();
//关闭链接
conn_sql.Close();


获取单个数据库记录
ExecuteScalar()方法:
效率比ExecuteReader()方法高出许多倍,它返回查询返回的第一行的第一列的值。

示例
string strconn_sql="Server=localhost;uid=sa;pwd=diffmaker;database=Diffmaker";
SqlConnection conn_sql=new SqlConnection(strconn_sql);
conn_sql.Open();
SqlCommand cmd_sql=new SqlCommand("select count(0) from v_order_cancel",conn_sql);
Response.Write("表中共有记录:"+cmd_sql.ExecuteScalar().ToString()+"条");
conn_sql.Close();
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}