ASP.NET Web Matrix是微软最新推出的ASP.NET编程工具,该工具功能全面,使用也比较轻便、灵活。我们现在来看看使用怎样这个工具设计结合数据的网页。
一、建立数据库
ASP.NET Web Matrix现在支持微软的SQL Server,也支持自带的一个简单桌面数据库MSDE,这个简单数据库和SQL Server的个人版有点类似,可以免费下载。为了说明这个数据库的使用,我们首先到微软网站下载这个免费的数据库工具。
在没有安装以上数据库的情况下,ASP.NET Web Matrix的“数据”面板是没有数据库的(图一),在ASP.NET Web Matrix中,当用户点击“Data”选项卡的时候,ASP.NET Web Matrix会给出一个要求安装数据库的提示
这时候,我们可以安装SQL桌面数据库或者免费下载微软的MSDE数据库来进行安装。当安装完成以后,我们就可以在这个本地数据库或者在远程的SQL数据库服务器建立数据表,然后通过ASP.NET对这些数据进行具体的操作。
安装MSDE完成以后,再一次点击ASP.NET Web Matrix 的“Data”面板,就可以建立数据库了
因为建立、操作数据库的方式和使用SQL Server安全相同,我们在这里就不详细介绍具体操作了,在这里,我们建立一个名为Orders的数据库
经过以上设置以后,ASP.NET Web Matrix就可以顺利进行数据库的操作了,以下的程序我们都将针对以上的数据库、数据表进行操作。使用SQL Server的用户,在本地安装桌面SQL Server就可以直接连接远程数据库了,一般个人应用或者学习使用,直接用微软的MSDE就可以完全达到要求,毕竟SQL Serer的价格和管理都不是个人用户可以轻易达到的。
二、用ASP.NET操作数据库
建立数据库以后,我们就可以进行数据库操作了,以下我们将分几个类型介绍数据库的操作,力求全面的介绍ASP.NET Web Matrix数据库操作的精华。
1、简单数据发布
我们知道,最简单的也是最基本的数据库操作就是数据表信息的发布。这里,我们首先将以上Orders数据库的Orders表信息简单的通过ASP.NET发布到网页。
在ASP.NET Web Matrix中,MXDataGrid服务器控件是专门显示来自数据库等数据源的数据表格控件,我们可以在设计或者程序运行的时候将控件绑定到数据源来显示数据,这里,我们就使用MXDataGrid服务器控件来显示数据。
(1)在ASP.NET Web Matrix中,选择“File”->“New”,出现“New File”对话框;
(2)在出现的对话框中,选择“General”面板;
(3)选择“ASP.NET Page”;
(4)在“Location”输入框输入新建立的文件路径;
(5)在“FileName”输入框输入新建立的文件名“myFirstDataGrid.aspx”;
(6)在“Language”下拉框选择“Visual Basic”作为ASP.NET开发语言;
(7)点击“OK”按钮;
(8)这样,文件“myFirstDataGrid.aspx”就会在ASP.NET Web Matrix的“Design”视图中出现
(9)在工作窗口中选择“Data”选项页;
(10)点击选项页上部的数据库标志,出现数据库选择界面,这里我们选择本地的“Orders”数据库。
(11)回到工作窗口,选择“Orders”表,用鼠标左键点击该表,将其拖到ASP.NET页面;
(12)这样,在设计视图,我们将看到SQLDataSourceControl和MXDataGrid两个控件出现在ASP.NET页面
在这里,我们注意几点,一是ASP.NET Web Matrix会工具指定的数据库自动设置SQLDataSourceControl的属性;二是ASP.NET Web Matrix将自动把MXDataGrid和SQLDataSourceControl绑定;
(13)保存并且运行这个文件,我们刚才设计的myFirstDataGrid.aspx将自动显示在浏览器中,这个页面包含了Orders表的所有数据,如果数据库中的数据超过10行的话,MxDataGrid将每页显示10行并自动对数据进行分页,在页面的下放会出现页面的链接;
通过以上的操作,数据表Ordrs的内容就自动通过网页发布了,以上步骤看上去很多,其实具体设计的时候,就会很简单了。在这个简单的程序中,我们不需要编写一行代码就建立了一个自动分页的数据发布页面。
2、格式化MXDataGrid
上面我们使用了MxDataGrid的默认样式来发布数据表Orders的数据,尽管这个样式还不错,但是,显然我们不可能长期只使用这个默认的设置来显示数据,所以,这一节我们将学习怎样格式化MXDataGrid。
(1)打开刚才我们设计的“myFirstDataGrid.aspx”;
(2)选择MxDataGrid控件;
(3)在“Properties”(属性)窗口中选择“AllowPaging”属性;
(4)将MxDataGrid的“AllowPaging”属性设置为“False”,这一属性将设置MxDataGrid是否具备数据分页功能,这里我们设置为“False”
(5)然后,在“Properties”(属性)窗口中选择“Fields”属性;
(6)出现“Collection Editor”对话框 在这里,我们将具体设置有关MXDataGrid数据字段显示的一些属性;
(7)将“HeaderText”属性的“OrderID”修改为“编号”;
(8)点击“Ok”按钮,保存并且运行这个页面;
(9)通过这些设置,我们看到MXDataGrid中原来的OrderID列标头已经改变为“编号”(
3、使用Data Code Builder
显然,以上我们介绍的数据库功能只能完成我们实际开发工作的很小部分,要设计比较完善的数据库应用,我们需要更加强大的功能。Code Builder就是可以满足这种要求,它是在代码生成器的基础上设计的,目的在于帮助用户设计一些日常常见的功能模块。ASP.NET Web Matrix本身已经带有一些Code Builder,包括一些专门用于数据库设计的Code Builder。在下面的文章中,我们将介绍使用Select Code Builder来设计一个简单的搜索数据库功能。现在我们就来一步步实现这个功能。
(1)建立一个新的ASP.NET页面,语言选择为VB,文件名为myFirstDataPage.aspx;
(2)在设计视图中,从“Web Control”选项页选择一个“TextBox”、一个“DataGrid”、一个“Button”控件到设计页面在这里注意一点就是,这里我们选择的是“DataGrid”控件,不是“MXDatGrid”控件;
(3)以上是“Design”设计视图的设计,现在,我们点击“Code”选项卡选择代码视图;
(4)在代码视图的左边,我们可以看到有“Toolbox”列,那里就有Code Builder选项卡,在Code Builder选项卡,我们选择“Select”拖到设计区;我们看到,这里其实不止“Select”一个选项,还有其他“Insert”、“Delete”等,也就是说,基本上常见的数据库操作,都可以通过这里介绍的方法来完成。
(5)这时候,我们看到“Connect Database”对话框出现了,我们在这里选择“LocalHost”服务器中的“Orders”数据库;
(6)这时候出现了名为“Construct Select Query”(建立数据库选择)的Code Builder向导(“Code Builder Wizard”)
(7)在以上界面的左边“Tables”选择我们需要查询的数据表,这里,我们选择“Orders”数据表;在右边的“Columns”可以选择需要查询的数据列,在需要查询的数据列前面打勾,如果需要查询所有数据列,可以选择“*”也可以点击按钮“Slect All”,这里,我们选择“*”;这时候,我们可以看到在以上界面的“Preview”部分已经出现了部分“Select”语句“SELECT [Orders].* FROM [Orders]”,我们看到是标准的Select查询语句;
(8)点击以上界面的“Where”按钮,出现设置“Where”语句的“Where Clause Builder”界面,这个界面分左右两个部分,左边是Where语句等于号的左边,右边是Where语句等于号的右边,在左边的“Columns”列我们选择“OrderID”,在右边的“Filter”过滤输入框,我们输入“@OrderID”,这样设置的意思是查询“OrderID”等于变量“OrderID”的所有数据记录,点击“OK”按钮,回到前面的界面,我们可以看到Select语句已经改变为:SELECT [Orders].* FROM [Orders] WHERE ([Orders].[OrderID] = @OrderID);
(9)在界面“Construct Select Query”选择按钮“Next”进入下一个Code Builder Wizard,那就是查询语句的“Preview”;
(10)在出现的“Query Preview”界面点击“Text Query”按钮来检测前面设计的查询语句,会出现一个设置@OrderID数值的对话框,我们这里设置为“1”;这里的意思就是选择OrderId为1的数据行;
(11)点击以上界面的“OK”按钮,我们就可以直接看到查询结果了
(12)以上我们看到了查询语句测试运行的结果是准确无误的,进一步点击按钮“Next”;出现Code Builder Wizard的第三步,再这里,我们需要设置查询函数的名字和查询使用的方式;在这里,我们可以选择“DataSet”和“DataReader”两者方式来实现数据查询;
(13)在以上界面,我们选择“DataSet”方式来查询数据,点击按钮“Finish”结束向导,这时候,我们可以看到“Code”视图已经增加了一个函数,这个函数就是刚才我们通过向导建立的“MyQueryMethod”函数;
Function MyQueryMethod(ByVal orderID As Integer) As System.Data.DataSet
Dim connectionString As String = "server='localhost'; trusted_connection=true; Database='Orders'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim queryString As String = "SELECT [Orders].* FROM [Orders] WHERE ([Orders].[OrderID] = @OrderID)"
Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)
sqlCommand.Parameters.Add("@OrderID", System.Data.SqlDbType.Int).Value = orderID
Dim dataAdapter As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter(sqlCommand)
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)
Return dataSet
End Function
(14)点击“Design”选项卡回到设计视图,双击我们增加的“Button”按钮,转到“Code”代码设计窗口;
(15)在代码设计视图增加以下按钮事件代码:
Sub Button1_Click(sender As Object, e As EventArgs)
DataGrid1.DataSource =MyQueryMethod(CInt(TextBox1.Text))
DataGrid1.DataBind()
End Sub