ADO.NET 数据库实例教程C#版(黑闪原创)(一)

 ADO.NET数据库编程比较复杂,名目繁多的类、对象、属性、方法让每一个编程者都感觉恼火。本文旨在介绍ASP.NET Beta2数据库编程的主

要内容,帮助编程者最快的了解ADO.NET数据库编程的精髓。

  一、 Managed Providers

  什么是"Managed Providers"?

  Managed Providers提供简单的方法连接和访问数据库,有点类似于数据库连接,当然又比它强的多。Managed Providers提供OleDb和SQL

Server两种编程接口。因为SQL Server是微软自己的产品,因此,专门提供了一个针对SQL Server的接口,使用这个接口访问SQL Server的效

率应该比使用OleDb强。

  NameSpaces

  本文所有的例子程序都需要使用以下NameSpaces:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

  Connection

  为了连接数据库,必须使用SqlConnection:

protected System.Data.SqlClient.SqlConnection conn;
conn=new System.Data.SqlClient.SqlConnection();
conn.ConnectionString="workstation id=JSB;packet size=4096;user id=sa;data source=QDHL;persist security info=True;initial

catalog=qdhl;password=mm";

  当然,你也可以将具体的连接方法作为变量使用,在连接数据库以后,必须打开数据库:

conn.Open();

  这样,就可以使用数据库了,一般在最后,我们都要求关闭数据库连接:

conn.Close();


  Command

  连接数据库以后,就可以发送命令对数据库进行操作了,SqlCommand允许发送命令对数据库进行操作。根据发送的SQL语句,我们可以对数

据库进行几乎所有操作。
protected System.Data.SqlClient.SqlCommand comm;

SqlStr="select  * from MmsBase ";
comm=new System.Data.SqlClient.SqlCommand(SqlStr,conn);

  以上语句建立Command,根据习惯不同,也可以使用以下方法:
comm.Connection=conn;
comm.CommandText="select  * from MmsBase";


  还可以这样:

comm=new System.Data.SqlClient.SqlCommand(SqlStr,conn);

  仔细观察上面的语句,我们发现在定义SqlCommand时,可以同时使用数据库连接SqlConnection和数据库连接语句。以上代码并没有执行SQ

L语句,现在我们来看到底怎样执行:


rs=comm.ExecuteNonQuery;

  当执行没有返回数据的操作的时候,我们可以使用以上方法,比如插入数据、更新数据等操作,具体这样执行:

rs=comm.ExecuteNonQuery;

  ExecuteReader

  在需要一个Data Reader的时候,我们可以使用以上方法,具体这样执行:

protected System.Data.SqlClient.SqlDataReader rs;
rs=comm.ExecuteReader();

  ExecuteScalar

  使用ExecuteScalar方法来取得一个单个地返回数据,比如对数据的统计。
rs=comm.ExecuteScalar();
  Data Reader

  SqlDataReader是专门用来读取数据的对象,这个对象除了读数据以外,不能做其他任何数据库操作。尽管比较简单,但是在用来浏览数据

的时候效率是非常高的。
      protected System.Data.SqlClient.SqlDataReader rs;
      rs=comm.ExecuteReader();
      while(rs.Read())
        {
          mmsimg.ImageUrl=rs["mms_img"].ToString();
             }

  以上语句读取Command的返回结果的第一个字段,这个字段是字符型数据。我们可以使用其他方法取得各种类型的数据:

    GetBoolean(x)

    GetByte(x)

    GetBytes(x)

    GetChar(x)

    GetChars(x)

    GetDataTypeName(x) -取得数据类型

    GetDateTime(x)

    GetDecimal(x)

    GetDefaultStream(x)

    GetDouble(x)

    GetFieldType(x)

    GetFloat(x)

    GetGuid(x)

    GetInt16(x)

    GetInt32(x)

    GetInt64(x)

    GetName(x) - 取得字段名

    GetOrdinal(name) -根据字段名取得字段序号

    GetString(x)

    GetTimeSpan(x)

    GetValue(x)

    GetValues(values())

  以上方法都是Command返回数据。

  Data Adapter

  SqlDataAdapter取得数据并且数据与DataSet之间建一座桥梁,可以这样使用:
protected System.Data.SqlClient.SqlDataAdapter NewsAdap;
NewsAdap=new System.Data.SqlClient.SqlDataAdapter("select top 8 * from MmsBase",conn);

  实现方法有点类似于SqlCommand。SqlDataAdapter可以填充DataSet,也可以修改数据然后提交以实现对具体数据的修改:

qdhlTable=new DataSet();
NewsAdap.Fill(qdhlTable,"MmsBase");

  以上语句实现将SQL语句取得的Users表的数据填充到DataSet。


  Mappings

  Mappings可以实现对DataSet的列取别名:

 NewsAdap.TableMappings.Add("adbtable", "users");


  Command Builder

  在下一章我们可以看到Command Builder的具体使用和强大功能。

  练习:

  如果你能理解以下代码,你就可以看下一章的内容了:
private void Page_Load(object sender, System.EventArgs e)
  {
         string SqlStr;
   conn=new System.Data.SqlClient.SqlConnection();
   conn.ConnectionString=qdhlsite.function.strConn;
   SqlStr="select * from MmsBase order by mms_id desc";
   MmsAdap=new System.Data.SqlClient.SqlDataAdapter(SqlStr,conn);
   qdhlTable=new DataSet();
   MmsAdap.Fill(qdhlTable,"mms_id");
   MmsTable=qdhlTable.Tables["mms_id"];
   MmsBaseList1.DataSource=MmsTable;
   MmsBaseList1.DataBind();
  
  }
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值