概述
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();
}
最后
以上就是冷傲冰棍为你收集整理的ADO.NET 数据库实例教程C#版(黑闪原创)(一)的全部内容,希望文章能够帮你解决ADO.NET 数据库实例教程C#版(黑闪原创)(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复