[译]在ASP.NET2.0和Visual Studio2005中操作数据库

翻译:德仔工作室 http://www.dezai.cn/

原文: Working with Databases in ASP.NET 2.0 and Visual Studio 2005

作者: Scott Mitchell

网址: http://aspnet.4guysfromrolla.com/articles/110905-1.aspx

教程下载:点击此处下载本教程

Flash查看:
Flash动画


______________________________________________________________________________

概要

在2005年的11月7日,Microsoft发布了.NET2.0(包括ASP.NET2.0),Visual Studio2005和SQL Server2005.所有的这些新版本都可以与先前的版本并行存在.这就是说,ASP.NET的1.X版本可以与Version2.0版本安装在同一机器上.你可以同时使用visual Studio.Net2002/2003/ 和Visual Studio2005,在SQL Server2000与SQL Server2005也是一样的.更让人惊喜的是:Microsoft 同时发布了Visual Studio2005 和 SQL Server2005的 Expresst版本. Express 版本虽然相对于专业版少了一些功能,但它完全可以免费使用一年!

由于大多数ASP.NET的应用程序都要通过各种方式与数据库打交道,对于大多数开发者来说,当2.0出来后,他们最关心的问题应该是:我在2.0中怎样与数据库进行操作? 通过ASP.NET2.0我可以与哪些数据库进行连接? 令人高兴的时,在2.0的版本中包括了1.X版本的所有功能特征.因此,在1.X中所使用的方法在2.0版本仍然可以放心的使用.除了支持1.0的数据操作方式处,2.0还包含了更多的数据源控件,这些控件可以让数据库操作显示更为简单    .通过这些数据源控件,你可以通过设置相关控件的属性,来构造和设置相关的SQL查询语句.这些数据源控件,设定好控件的DataSourceID后,就可以绑定到相关的用户控件(例如GridView).过去那种只能能手工编写代码来实现数据库连接,数据库操作特别是SQL查询,再传值给DataReader 或 DataSet,通过它们绑定到用户控件的日子已一去不复返.这些步骤都可能通过数据源控件来替代了.当然,你仍然可以使用你熟悉的1.0的代码来进行数据操作.

在这篇文章里,我们将可以学习到如何通过ASP.NET2.0来连接数据库后,显示数据.我们将通过编码和向导的方式进行数据操作,,利用Gridview来显示数据.

通过VisualStudio2005进行数据库操作

当你安装VisualStudio2005的任何一个版本时,都会询问你是否安装SQL Server2005的 Express 版本.如果你选择”是”的话,当你安装Visual Studio2005的时候,SQL Server2005会安装在你的机子止,它可以同时与SQL Server2000或其它数据库同时运行在一个机子上.如果你现在的项目是使用SQL Server2000的话,你就可以很方便地通过企业管理器进行数据库的操作,同时你也可以通过Visual Studio2005来实现对SQL Server2000或 SQL Server2005来进行管理和操作.我在这里想要说的是:由于SQL Server2005的Express 版本并不提供像SQL Server2000企业管理器那样的 GUI 工具,所以你只能对通过Visual Studio2005来实现对SQL Server2005的管理与操作(Microsoft 正在开发用于SQL Server2005 Express Edition的管理工具,现在这软件已经发布了预览版,你可以关注SqlServer2005官方网站以获取最新的信息)

提示:管理SQL Server2005 Express Edition


如果你有比SQL Server2005更好的版本,你可以在你的机器上安装其它客户端工具(包括GUI工具)来管理SQL Sever2005,如果你安装了这些客户端,同样可以用来对SQL Server2005 Express Edition进行管理和操作.

要通过Visual Studio2005进行数据库的管理,我们就先要在工具箱里打开服务器资源管理器,你将会发现有一系列的结点出现.(如下图)



你可能通过点击在”数据连接”处点击鼠标右键来创建一个新的数据连接,之后会出现一个对话框让你输入相关的信息(像服务器,验证信息,数据库用户等等).如果你安装的是SQL Server2005 Express 版本,一般安装的数据库的数据库名都默认的 你的机器名\SQLExpress 或.\SQLExpress. 除了可以连接已经存在的数据库外,你还可以通过点击鼠标右键来实现”创建一个新的SQLServer数据库”.

当一个数据库创建好后,你就可以进行数据库表的修改,删除,新建,存储过程操作,视图操作等相关数据库操作了.例如要创建一个新的表或一个新的存储结构,在相对应的文件夹里点击鼠标右键选择”创建新的。。。”就可以了.要修改一个存在的表结构或一个存储过程,视图,你只要双击相对应的表或存储过程,视图就可以了.这些操作在Visual Studio都可以实现,你可以对你所需要的地方进行修改,你也可以通过对相对应的表进行重命名操作或显示表数据操作.

将数据库增加到App_Data文件夹中


除了可以通过服务器资源管理器中的数据连接选项卡来实现数据库增加操作外,你也可以将一个特定的数据库放至App_Data文件夹中.App_Data文件夹是一个新的,在ASP.NET2.0中用来保存与数据操作相关的内容,包括 SQL Server文件(.mdf文件),XML文件等的文件夹.在一个ASP.NET的网站项目中,你可以更有效地通过在App_data文件夹中,点击鼠标右键,在解决方案资源管理器中”添加新项”来为你的项目创建和增加一个新的数据库,之后会弹出一个新的对话框(如下图),让你选择增加一个新的SQL数据库.




如果你想跟随我继续走下去,那么请你在App_Data文件夹中创建一个名为Customer.mdf的数据库,在数据库中增加一个名为Customer的表,这个表中有以下字段:CustomerID(自动增长,设为主键),Name,City,State,Zipcode,然后在表中通过VS2005在表中增加一些新的记录.你也可以将存在的数据库可以是SQL Server2000放入文件夹内(要注意的是:如果你增加一个存的的SQL Server2000的mdf格式,你需要确定这个数据库可以通过企业管理器找还原.为了实现这样,你可以对企业管理器,点击鼠标右键->所有任务-> 还原数据库,当你将数据库还原并增加至ASP.NET2.0的项目中后,你就可以通过企业管理器进行操作了.

通过SqlDataSource Control连接一个数据库

我们已经知道怎样通过Visual Studio的图形界面进行创建数据库及相关操作,让我们所我们的精力转移至如何在一个ASP.NET2.0的页面中显示从一个数据库中所读取的数据的学习上来.ASP.NET2.0包括了一系列的数据源控件,这些控件都提供了对数据操作的向导,他们是五个数据源控件都可以在工具箱中的Data选项卡中找到.(如下图)





•qlDataSource—用于从一个相连的数据库是进行数据检索和数据修改.”Sql”这名字并不是说这个控件中能运用于Microsoft SQL Server,相反的是它可以用于其它任何数据库:SQL Server,Access,Oracle等等.如果你是连接一个SQL Server的数据库,与SQLClient 类结合使用,会发挥更大的功效.

•AccessDataSource-用于对一个Access数据库的检索和数据操作. 你可能在想有了SqlDataSoucre控件,为什么还要用这个控件来对Access数据库进行操作呢. AccessDataSource数据库可以让连接Access数据库变得更容易操作---你只需指定一下Access数据库的mdb格式的文件的路径 ,而通过SqlDataSource来操作的话,你就需要一个完整的数据连接串了.

•ObjectDataSouce-用于对一个业务对象的数据检索和操作.你的ASP.NET应用程序应该是由通过一系列列的相关的类组成的一个中间层来实现对数据的操作(而非是直接用ASP.NET页面与数据库直接打交道),如果你的项目有这样的一个架构,ObjectDataSource就可以用于你的中间层.

•XMLDataSource-用于对一个XML文件的数据检索

•SiteMapDataSource—用于提供一个像网站地图一样的只读的网站组织,当你要在一个Treeview控件或一个Menu控件中显示一个网站的架构时,你就可以使用它了.更多的ASP.NET2.0的站点导航功能可以查看相关文章.

我们在这篇文章里只介绍SqlDataSource控件的基本功能及其应用.我们从在ASP.NET页面中增加一个SqlDataSource控件开始.在设计视图中,SqlDataSource控件包含了一个”smart tag”列出了他的常用的功能.这个数据源管理器将会通过一个数据源向导,指导操作.这个向导主要是通过以下三步

1.选择你的数据源—我们需要选择所要连接的数据库,这个对话框包含了一个下拉菜单,这个下拉菜单列出了在App_Data文件夹和在数据连接选项卡中的所有的数据库,对话框同时提供了一个创建新的数据库的按钮,如果你不想选择现在既有的数据库,你可以通过这个按钮进行创建新的数据库操作. 我们在这里选择了Customer.mdf这个数据库.

2.设置连接字符串--如果这里你第一次增加连接,这里需要你输入连接数据库的字符串,它会保存在web.config的文件里.我们在这里把其命名为CustomersConnectionString

3.设置查询—接下来的工作是确定哪些数据是你需要返回的,哪些相关的条件是需要应用于的,还有返回数据的分类方式.你可以通过一个向导在表中或视图中进行选择你要所返回的字段,你也可以直接写入select查询语句.不论哪一种方法,通过SqlDataSource控件所返回的字段都是一样的.我们在这里是返回了所有的数据,换句话说我们执行了”select* from customers”的查询语句操作.

4.测试查询—你可以运行你的select查询语句,这样可以预览你的查询评语所能返回的结果.你只要点击”测试查询”按钮,就可以看到表Customers中的所有的字段和记录了

当你完成了SqlDataSource的设置后,你可以查看下在sqlDataSource控件中的相关属性设置代码会自动生成如下




     ConnectionString="<%$ ConnectionStrings:CustomersConnectionString %>"
     SelectCommand="SELECT * FROM [Customers]">




这里要值得注意的是: ConnectionString属性使用了新的语法<%$...$%>.这种语法是通过从web.config中的ConnectString部分获取其值的.换句话说:ConnestionString的变量名就是我们在第二步里面所输入的字符串名.


DataSource控件主要与数据打交道,但他们并不会把数据显示出来.如果你通过你的浏览器访问ASP.NET页面,你可以发现没有任何数据输入在页面上.为了能把我们刚才创建的数据通过SqlDataSource控件显示出来,我们需要增加一个数据控件.在这篇文章里,我们采用了Gridview控件,它同样可以在工具箱中的”数据”选项卡中找到.这个GridView控件是在ASP.NET1.X中的DataGrid控件的老大哥,并提供了更强大的功能.我们只在这里用它来绑定和显示数据,进行一个简单的功能测试 ,如果你对GridView感兴趣的话,可以参看我的另一篇关于GridView的文章.


在设计视图中,将一个GridView控件拖拉至你的Asp.NET页面中,GridView的”smart tag”包括了一个选择数据源的下拉菜单的设置.通过对这个下拉菜单进行设置,将我们刚刚加入的数据源的ID加入,当完成后,GridView将会根据返回的数据源自动将每个字段的数据绑定到控件中

到这里我们已经完成全部了!不再需要什么代码,GridView所显示的数据可能通过ASP.NET页面显示出来,如下所示:



通过GridView的SqlDataSource控件我保可以在30秒内在一个空白的页面内显示出数据库中所指定的表的数据.事实上,不仅仅是显示数据,GridView控件还支持对数据进行分类,删除操作,编辑操作,这些我们会在以后的文章里介绍.


通过写代码实现数据库的连接

正如我们刚才所看到的,通过一个SqlDataSource来检索数据是一种方法,但我们如何通过编码实现数据操作呢?或者说,我们已经有了我们想要显示的精确的数据的程序代码,只需要通过GridView来显示出来,我们应该乍样操作呢?没问题,我们可以像在1.X版本一样创建数据库连接,创建一个command对象 ,指定特定的查询评语,调用一个DataReader或DataSet对象来实现,之后将结果通过DataSoruce的属性和DatBind()方法绑定到控件中.

下面的这段代码是在在一个asp.net页面的page_load事件中,将数据库customers中的表绑定到GridView控件中



Protected Sub Page_Load(ByVal sender As Object, _
                        ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
   'Start by determining the connection string value
   Dim connString As String = _
       ConfigurationManager.ConnectionStrings(connStringName).ConnectionString

   'Create a SqlConnection instance
   Using myConnection As New SqlConnection(connString)
     'Specify the SQL query
     Const sql As String = "SELECT * FROM Customers"

     'Create a SqlCommand instance
     Dim myCommand As New SqlCommand(sql, myConnection)

     'Get back a DataSet
     Dim myDataSet As New DataSet

     'Create a SqlDataAdapter instance
     Dim myAdapter As New SqlDataAdapter(myCommand)
     myAdapter.Fill(myDataSet)

     'Bind the DataSet to the GridView
     gvCustomers.DataSource = myDataSet
     gvCustomers.DataBind()

     'Close the connection
     myConnection.Close()
   End Using
End If
End Sub




要注意的是:我们可以在web.config中通过ConfigurationManager.ConnectionString(连接变量名).ConnectionStreing来进行数据连接 ,”连接变量名”也就是在第二步向导中所输入的变量名了.还需注意到的是:在Visual Basic8中现在支持关键字了.这在以前的版本中只有c#有这功能.当通过代码编写输出的结果与SqlDataSource控件输出的结果是一样的.

在这篇文章里,我们知道了怎样在VisualStudio2005和 ASP.NET2.0中进行数据库操作,我们知道了如何通过Visual Studio来管理数据库,我们还知道貌岸然了如何在APP_Data 文件夹中创建一个网站特定的数据库.最后,我们还学到了运用SqlDataSource控件和代码两种方法来进行数据操作.当运用datasource控件时,可以通过设定GridView 控件的DataSourceID的属性来绑定数据,调用 DataBind()方法就可以实现了.(跟在ASP.NET1.X中DataGrid的绑定数据一样的用法),不论使用什么方法,而最终的结果都是一样的,呵呵!




上一篇: 德仔工作室<<聆听>>音乐杂志第一期
下一篇: 统计出表中或数组中每个重复项出现的次数
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 369 | 查看次数: 55741
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 30 字 | UBB代码 关闭 | [img]标签 关闭