时间:2022-09-28 03:33:44
[摘 要]是现在非常流行的数据库访问技术,利用这一技术可以方便地实现动态网页的开发。本文介绍了相关的数据访问控件的功能及用法。利用这些技术和方法快速地访问SQL Server2005数据库。最后总结了数据访问技术存在的问题及今后的发展方向。
[关键词] 动态网页 数据库访问 控件
中图分类号:TP3 文献标识码:A
1 引言
当今的世界是个信息世界,各种各样的信息每天都扑面而来。而每个人也都希望尽快掌握最新的信息,从而指导自己的生活。而获取信息最便捷最常用的方法就是通过到Internet上来获取的。人们阅读的是一个个网页,而网页的内容多数都存放在数据库中。因此,如果想要编写一个功能完备的动态网页,那么充分利用数据库的访问技术就非常关键了。
2 的数据访问对象
2.1 什么是
ActiveX Data Objects(ADO)是Microsoft开发的面向对象的数据访问库,目前已经得到了广泛的应用。 而则是ADO的后续技术。但并不是ADO的简单升级,而是有非常大的改进。利用,程序员可以非常简单而快速地访问各种数据库,如SQL Server数据库。
是在.NET Framework上访问数据库的一组类库,它利用.NET Data Provider(数据提供程序)以进行数据库的连接与访问。通过,数据库程序设计人员能够很轻易地使用各种对象来访问符合自己需求的数据库内容。
2.2 的常用对象
1)数据库的连接对象Connection
在数据访问中首先要建立数据库的物理连接。下面的例子都是使用.NET Data Provider的 Data Provider数据提供程序来实现的,用于访问Sql Server2005数据库。SqlConnection对象标识一个与数据库的物理连接,用于打开数据库。
例:SqlConnection conn=new SqlConnection();
mystr="Data Source=localhost;Initial Catalog = Stud; Integrated Security = True";
conn.ConnectionString = mystr;
conn.Open();
2)访问数据库的命令对象Command
建立数据连接之后,就可以执行数据访问操作和数据操纵操作了。在中定义SqlCommand 类去执行这些操作。
例:SqlCommand cmd = new SqlCommand("SELECT * FROM student",conn);
这个命令对象检索出了stud数据中student表的所有数据,形成数据的结果集。如何从结果集中提取数据呢?一般用下面介绍的两个方法之一。
3)数据阅读器DataReader对象
利用DataReader对象,一行一行地循环读出数据并显示到相应的控件中。
例:SqlDataReader rea = cmd.ExecuteReader(); while (rea.Read()) ListBox1.Items.Add(String.Format("{0} {1} ", rea [0].ToString(),rea [1].ToString()));
这样就把student表中的数据显示在列表框ListBox1中了。
4)数据适配器DataAdapter对象
数据适配器SqlDataAdapter对象能执行SQL命令,取得数据结果集,在数据库和存放在内存缓冲区中数据的对象DataSet之间来回传输数据。
例:SqlDataAdapter adapt = new SqlDataAdapter(“select * from student”, conn);
5)数据集对象DataSet
DataSet是数据库访问组件的核心,主要是用来支持的不连贯连接及数据分布。 它的数据驻留内存。利用SqlDataAdapter对象的Fill方法往DataSet对象中填充数据。
例:DataSet myds = new DataSet();
SqlDataAdapter myda =
new SqlDataAdapter("SELECT * From student",conn);
myda.Fill(myds, "ds_student");
这样就把数据库stud中student表的所有数据填充到数据集myds的临时表ds_student中。可以作为数据源绑定到数据绑定控件中,显示数据了。
3 利用的数据访问对象开发动态网页
下面这段程序就是利用上述对象开发一个简单的访问数据库的网页,如图1所示。点击“查询”按钮后,可按条件进行查询,查义后的结果如图2所示。
部分程序的代码如下:
using System.Data.SqlClient;
public partial class ADONET技术_学生信息 : System.Web.UI.Page
{string mystr = "Data Source=.;Initial Catalog = Stu; Integrated Security=True";
SqlConnection conn = new SqlConnection();
protected void Page_Load(object sender, EventArgs e)
{ DropDownList1.Items.Add("学号");
DropDownList1.Items.Add("姓名");
DropDownList1.Items.Add("性别");
DropDownList1.Items.Add("年龄");
conn.ConnectionString = mystr;
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM 学生", conn);
SqlDataReader rea = cmd.ExecuteReader();
ListBox1.Items.Add("学号 姓名 性别 年龄");
while (rea.Read())
ListBox1.Items.Add(String.Format("{0}{1}{2}{3}",
rea[0].ToString() + " ", rea[1].ToString(),
rea[2].ToString() + " ", rea[3].ToString()));
rea.Close();
}
protected void 查询_Click(object sender, EventArgs e)
{string condstr = DropDownList1.Text+"=' " + TextBox1.Text + " ' ";
DataSet myds1 = new DataSet();
SqlDataAdapter myda1=new SqlDataAdapter ("SELECT * FROM 学生", conn);
DataView mydv = new DataView();
myda1.Fill(myds1, "ds_1");
mydv = myds1.Tables["ds_1"].DefaultView;
mydv.RowFilter = condstr;
GridView1.DataSource = mydv;
GridView1.DataBind();
conn.Close(); } }
4 结论
从上述网页的设计和实现过程来看,利用技术开发能够进行交互的动态网页非常方便。能够非常快速准确地从外部访问SQL Server2005数据库,从而实现通过网页访问数据库的功能。
但编写相应的逻辑代码时,需程序员有丰富的经验,对编程者的知识和技能要求较高,推广起来有点难度。
参考文献
[1] 闫洪亮. 程序设计教程. 上海交通大学出版社.上海.2009.
[2] 马骏. 网页设计与网站开发. 人民邮电出版社.北京.2008.
[3] 李春葆, 动态网站设计教程. 清华出版社. 北京.2012.
[4] 李春保,C#程序设计教程. 清华出版社. 北京.2009.