<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<head>
<title>Inserting a Row of Data with Validation (SQL)</title>
<link rel="stylesheet" href="/shared/netdemos.css">
<style type="text/css">
#posted {
background:lightgreen; border:thin inset}
</style>
<script language="C#" runat="server" src="fetchData_sql.cs" />
<script language="C#" runat="server">
protected void Page_Load ( object src, EventArgs e ) {
if ( !IsPostBack ) {
addPanel.Visible = true;
postPanel.Visible = false;
}
else {
addPanel.Visible = false;
postPanel.Visible = true;
}
}
public void addMessage ( object src, EventArgs e ) {
if ( Page.IsValid ) {
SqlCommand myCmd = new SqlCommand ( );
myCmd.Connection = new SqlConnection ( getConnection ( "aspnet" ) );
// define insert command parameters
myCmd.CommandText = "INSERT INTO aspx_messages ( MessageDate, MessageFrom, Email, MessageSubject, MessageBody ) VALUES ( @Date, @From, @Mail, @Subject, @Body ) " +
"SET @Id = @@Identity";
myCmd.Parameters.Add ( "@Date", SqlDbType.SmallDateTime ).Value = DateTime.Now;
myCmd.Parameters.Add ( "@From", SqlDbType.NVarChar ).Value = msgFrom.Value;
myCmd.Parameters.Add ( "@Mail", SqlDbType.NVarChar ).Value = msgEmail.Value;
myCmd.Parameters.Add ( "@Subject", SqlDbType.NVarChar ).Value = msgSubject.Value;
myCmd.Parameters.Add ( "@Body", SqlDbType.NText ).Value = msgBody.Value;
// used for getting new record ID
myCmd.Parameters.Add ( "@Id", SqlDbType.Int );
myCmd.Parameters [ "@Id" ].Direction = ParameterDirection.Output;
myCmd.Connection.Open ( );
// do insert
myCmd.ExecuteNonQuery ( );
// fetch new record into reader
myCmd.CommandText = "SELECT * FROM aspx_messages WHERE MessageId=" +
myCmd.Parameters [ "@Id" ].Value;
postDetails.DataSource = myCmd.ExecuteReader ( CommandBehavior.SingleRow );
postDetails.DataBind ( );
myCmd.Connection.Close ( );
}
}
</script>
</head>
<body>
<!-- #include virtual="~/shared/top.inc -->
<div class="header"><h2><b>Inserting a Row of Data</b> with Validation (SQL)</h2></div>
<!-- #include virtual="~/shared/viewsrc_top.inc" -->
<hr size=1 width=92%>
<center>
<form runat="server">
<asp:panel id="addPanel" runat="server">
<h5>You can use this Guests database to add an entry.</h5>
<table width="50%" class="tblEntry">
<col width=40% align="right">
<col width=60%>
<tr>
<td>Your name:</td>
<td><input id="msgFrom" runat="server">
<asp:requiredfieldvalidator
controltovalidate="msgFrom"
errormessage="Sender's name cannot be blank. "
runat="server">*
</asp:requiredfieldvalidator></td></tr>
<tr>
<td>Your email address:</td>
<td><input id="msgEmail" runat="server">
<asp:regularexpressionvalidator
controltovalidate="msgEmail"
validationexpression="^[\w-]+@[\w-]+\.(com|net|org|edu|mil)$"
errormessage="Please enter a valid e-mail address. "
runat="server">*
</asp:regularexpressionvalidator></td></tr>
<tr>
<td>Your subject:</td>
<td><input id="msgSubject" runat="server"></td></tr>
<tr>
<td>Your message:</td>
<td><textarea id="msgBody" rows=5 cols=35 runat="server"></textarea></td></tr>
</table>
<p><input type=submit value="Add New" runat="server" onServerClick="addMessage"> <input type=reset value="Cancel" onClick="self.close ( )"></p>
<asp:validationsummary runat="server"
displaymode="SingleParagraph"
showmessagebox=true />
</form>
</asp:panel>
<asp:panel id="postPanel" runat="server">
<h5>Thank you for sharing your comments. This record has been added.</h5>
<asp:datalist id="postDetails" width="85%" runat="server">
<itemtemplate>
<table id="posted" width=50% cellspacing=1 cellpadding=5 border=0>
<col width=35% align="right">
<tr>
<td>MessageID:</td>
<td><b><%# Eval ( "messageID" ) %></b></td></tr>
<tr>
<td>Date:</td>
<td><b><%# Eval ( "messageDate", "{0:d}" ) %></b></td></tr>
<tr>
<td>Name:</td>
<td><b><%# Eval ( "messageFrom" ) %></b></td></tr>
<tr>
<td>Email:</td>
<td><b><%# Eval ( "Email" ) %></b></td></tr>
<tr>
<td>Subject:</td>
<td><b><%# Eval ( "messageSubject" ) %></b></td></tr>
<tr>
<td>Message:</td>
<td><b><%# Eval ( "messageBody" ) %></b></td></tr>
</table>
</itemtemplate>
</asp:datalist>
</asp:panel>
</form>
</center>
<hr size=1 width=92%>
<!-- #include virtual="~/shared/viewsrc.inc" -->
</body>
</html>