65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 MS Access 的 ASP.NET 留言簿

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.32/5 (19投票s)

2003 年 1 月 17 日

2分钟阅读

viewsIcon

651071

downloadIcon

6139

展示了使用 ADO.NET 和 Access 构建留言簿的简单方法

Sample Image - myaspnetguestbook.jpg

引言

该项目展示了使用 ASP.NET 创建留言簿的简单方法。使用 Access 数据库存储数据。使用 ADO.NET 访问服务器上的数据。为了格式化数据,我使用了 Visual Studio .NET 附带的 Repeater 控件。

背景

留言簿分为两个页面,一个页面供用户在留言簿中书写,另一个页面显示所有留言簿条目的日志。

使用代码

为了能够通过网站访问数据,您需要在要使用数据访问方法的每个页面上包含这两行代码

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

我首先要描述用户向留言簿书写的页面。创建到数据库的连接所需的代码如下所示

sub OnBtnSendClicked (s As Object, e As EventArgs)
    Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ 
                                    & server.mappath("guestbook.mdb") & ";" 
    Dim MySQL as string = "INSERT INTO Guestbook " & _ 
       "(Name, EMail, URL, Comment) VALUES " & _
       "('" & txtName.Text & "','" & txtEMail.Text & "','" _ 
       & txtURL.Text & "','" & txtComment.Text & "')" 
    Dim MyConn as New OleDBConnection (strConn) 
    Dim cmd as New OleDBCommand (MySQL, MyConn) 
    MyConn.Open () 
    cmd.ExecuteNonQuery () 
    MyConn.Close () 
    Response.Redirect ("guestlog.aspx") 
end sub

当用户选择“发送”按钮时,此函数执行。它创建与服务器的连接,然后将用户在表单中输入的内容添加到数据库中,使用 INSERT INTO 语句。 txtName.Text 检索 Name 字段的上下文并将其添加到命令中。其他字段的检索方式完全相同。您可以在源代码文件中看到表单的代码,该文件随附于本文。

在函数添加了新记录后,用户将被重定向到日志页面,在那里他可以看到留言簿中的所有其他条目。现在我们将查看显示留言簿(数据库)条目的页面。

每当页面加载(或刷新)时,此函数就会执行。它创建与数据库的连接,并将数据绑定到 Repeater 控件。 Repeater 控件在文件中的其他地方进行格式化,这是一种分离数据和逻辑的好方法。

Sub Page_Load (Source As Object, E as EventArgs)
    Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ 
                                & server.mappath("guestbook.mdb") & ";"
    Dim MySQL as string = "SELECT Name, EMail, URL, Comment FROM Guestbook"
    Dim MyConn as New OleDBConnection (strConn)
    Dim Cmd as New OleDBCommand (MySQL, MyConn)
    MyConn.Open ()
    rptGuestbook.DataSource = _ 
      Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    rptGuestbook.DataBind()
End Sub

您可以在源代码文件中看到 Repeater 的代码,但我使用的一个有趣的事情是自动创建指向用户在表单中提供的网站的链接。这是使用 Visual Studio .NET 附带的 Hyperlink 控件完成的。

关注点

我希望本文向您展示了在一个非常短的时间内创建简单的留言簿是多么容易。当然,您可能希望以不同的方式格式化输出。我没有花太多时间在界面的设计上,而是专注于逻辑。我没有包含任何错误检查,以便使代码尽可能简单。

如果您了解此留言簿背后的理论,您可以使用 ASP.NET 进一步处理一些更复杂的事情。我希望您能像我一样喜欢它! - 祝您好运!

更新 2004 年 3 月 16 日

这篇 文章 讨论了许多人遇到的“操作必须使用可更新的查询”问题。

© . All rights reserved.