I thought of this solution when I was developing a website, and I was testing the contact us page. It was supposed to send an email with the details the user filled. But the emails were always late. So I created a table in the database of the application and saved the sent data there. There are 3 main advantages to this approach. First its much more reliable than email. Second, you get the sent information instantly. And third, you can design a page for the administrators to list and summarize the sent information as they please.
So here is the database table:
Field Name | Data Type | Allow Null | Description |
FeedbackID | Int | No | An auto incrementing primary key |
UserID | uniqueidentifier | No | Provider key used by ASP.NET's security |
SendingDate | smalldatetime | Yes | |
Subject | nvarchar(100) | Yes | |
Details | nvarchar(500) | Yes |
/****** Create Statement For Object: Table [dbo].[ContactUs] ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[ContactUs]( [FeedbackID] [int] IDENTITY(1,1) NOT NULL, [UserID] [uniqueidentifier] NULL, [SendingDate] [smalldatetime] NULL, [Subject] [nvarchar](100) COLLATE Arabic_CI_AS NULL, [Details] [nvarchar](500) COLLATE Arabic_CI_AS NULL, CONSTRAINT [PK_ContactUs] PRIMARY KEY CLUSTERED ( [FeedbackID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]
No code is needed for the contact us page or the administrator's page, because they can be done with a Form View and a Grid control respectively.