Click here to Skip to main content
Licence 
First Posted 16 Jan 2003
Views 518,959
Bookmarked 51 times

ASP.NET Guestbook using MS Access

By | 16 Mar 2004 | Article
Shows an easy way of building a guestbook using ADO.NET and Access

Sample Image - myaspnetguestbook.jpg

Introduction

This project shows an easy way to create a guestbook built using ASP.NET. Access database is used to store the data. ADO.NET is used to access the data on the server. To format the data, I use the Repeater control that comes with Visual Studio .NET.

Background

The guestbook is split into two pages, one where the user can write in the guestbook and the other shows a log of all the guestbook entries.

Using the code

In order to be able to access data through a website, you'll have to include these two lines of code on every page you want to use data access methods:

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

I'm first going to describe the one where the user writes to the guestbook. The code needed to create the connection to the database looks like this:

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

This function executes when the user selects the "Send" button. It creates a connection with the server and then adds what the user typed in the form to the database, using the INSERT INTO statement. The txtName.Text retrieves the context of the Name field and adds it to the command. The other fields are retrieved exactly the same. You can see the code for the form in the source file, that comes with this article.

After the function has added the new record, the user is redirected to the log page, where he can see all the other entries in the guestbook. Now we are going to look at the page, that displays the entries of the guestbook (database).

This function executes whenever the page is loaded (or refreshed). It creates a connection with the database, and binds the data to the Repeater control. The Repeater control is formatted elsewhere in the file, a great way to separate data and logic.

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

You can see the code for the Repeater in the source file, but one interesting thing that I used is to automatically create a link to the website the user provided in the form. That is done using the Hyperlink control that comes with Visual Studio .NET.

Points of Interest

I hope this article has shown you how easy it is to create a simple guestbook in a very short time. Of course, you may like to format the output differently. I didn't spend much time on the design of the interface, but instead concentrated on the logic. I haven't included any error checking, in order to make the code as simple as possible.

If you understand the theory behind this guestbook, you can move on to some more complex things using ASP.NET. I hope you enjoyed this as much as I have! - Good luck!

Update 16.03.2004

This article talks about the "Operation must use an updateable query" problem, that many people are having.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Dilbert2004

Web Developer

Iceland Iceland

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralError Code Pinmemberseangheng20:40 19 Jul '09  
GeneralASP.NET login page Pinmemberkholiwe22:28 4 Apr '07  
Hi all
 
I am trying to create a login page using ASP.NET and c# 2003 code behind. I am using Access database but i keep on getting this error when trying to connect to my database: Can someone please help me eliminate this error.
 
[Server Error in '/BookFlight' Application.
--------------------------------------------------------------------------------
 
The Microsoft Jet database engine cannot open the file 'C:\Inetpub\wwwroot\FlightBooking.mdb'. It is already opened exclusively by another user, or you need permission to view its data.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: System.Data.OleDb.OleDbException: The Microsoft Jet database engine cannot open the file 'C:\Inetpub\wwwroot\FlightBooking.mdb'. It is already opened exclusively by another user, or you need permission to view its data.
 
Source Error:
 

Line 159:
Line 160: if(oleDbConnection1.State == ConnectionState.Closed)
Line 161: oleDbConnection1.Open();
Line 162:
Line 163: //while (dataReader.Read())

 
Source File: c:\inetpub\wwwroot\bookflight\login.aspx.cs Line: 161
 
Stack Trace:
 

[OleDbException (0x80004005): The Microsoft Jet database engine cannot open the file 'C:\Inetpub\wwwroot\FlightBooking.mdb'. It is already opened exclusively by another user, or you need permission to view its data.]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbConnection.InitializeProvider()
System.Data.OleDb.OleDbConnection.Open()
BookFlight.WebForm1.CustomValidator1_ServerValidate(Object source, ServerValidateEventArgs args) in c:\inetpub\wwwroot\bookflight\login.aspx.cs:161
System.Web.UI.WebControls.CustomValidator.OnServerValidate(String value)
System.Web.UI.WebControls.CustomValidator.EvaluateIsValid()
System.Web.UI.WebControls.BaseValidator.Validate()
System.Web.UI.Page.Validate()
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
 

 

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.2032; ASP.NET Version:1.1.4322.2032 ]
GeneralRe: ASP.NET login page Pinmemberhafizakahbk15:46 24 Jul '07  
QuestionHelp Pinmemberasifahaniff5:38 20 Aug '06  
GeneralBlank Log view page Pinmemberfredtbx4:08 19 Jan '06  
GeneralRe: Blank Log view page PinmemberGabriel8211:23 19 Apr '07  
GeneralNext Page Pinmembershlvy6:50 12 Aug '04  
GeneralSecurity PinmemberJeffrey Sax19:01 17 Mar '04  
GeneralRe: Security PinmemberTony Truong12:40 18 Mar '04  
GeneralRe: Security PinmemberJeffrey Sax17:18 18 Mar '04  
GeneralRe: Security PinmemberTony Truong8:28 22 Mar '04  
GeneralRe: Security PinsussAnonymous22:03 27 May '05  
GeneralRunTimeError Pinmembersashy5:39 28 Feb '04  
GeneralRe: RunTimeError PinmemberArniG10:47 4 Mar '04  
GeneralAdding a search option to this Pinmemberdal20616:22 13 Apr '03  
GeneralGot errors Pinmemberxiaosong16:52 17 Feb '03  
GeneralRe: Got errors PinmemberTiger Woods21:57 18 Feb '03  
GeneralRe: Got errors Pinmemberxiaosong11:11 19 Feb '03  
GeneralRe: Got errors PinsussAnonymous8:01 14 Jun '03  
GeneralRe: Got errors PinsussAnonymous8:16 14 Jun '03  
GeneralRe: Got errors PinsussMichelle_ho3:41 8 Mar '04  
GeneralRe: Got errors PinmemberArniG2:41 16 Mar '04  
GeneralOther similar articles PinsitebuilderUwe Keim1:06 18 Jan '03  
Questionwrong category? PinmemberSteve McLenithan9:48 17 Jan '03  
AnswerRe: wrong category? + ... PinmemberSteve McLenithan9:51 17 Jan '03  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120529.1 | Last Updated 17 Mar 2004
Article Copyright 2003 by Dilbert2004
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid