Handling ObjectDataSource Control Events
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
protected void srcGuestbook_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
{
e.InputParameters.Add("IPAddress", Request.UserHostAddress);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<div>
<asp:FormView
id="frmGuestbook"
DataSourceID="srcGuestbook"
DefaultMode="Insert"
Runat="server">
<InsertItemTemplate>
<asp:Label
ID="lblComment"
Text="Comment:"
AssociatedControlID="txtComment"
Runat="server" />
<asp:TextBox
id="txtComment"
Text='<%# Bind("comment") %>'
TextMode="MultiLine"
Columns="50"
Rows="4"
Runat="server" />
<asp:Button
id="btnInsert"
Text="Add Entry"
CommandName="Insert"
Runat="server" />
</InsertItemTemplate>
</asp:FormView>
<asp:GridView
id="grdGuestbook"
DataSourceID="srcGuestbook"
CssClass="guestbook"
Runat="server" />
<asp:ObjectDataSource
id="srcGuestbook"
TypeName="Guestbook"
SelectMethod="GetEntries"
InsertMethod="AddEntry"
OnInserting="srcGuestbook_Inserting"
Runat="server" />
</div>
</form>
</body>
</html>
File: Guestbook.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
public class Guestbook
{
private string _conString;
public SqlDataReader GetEntries()
{
SqlConnection con = new SqlConnection(_conString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT Id,IPAddress,Comment,EntryDate FROM Guestbook";
con.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
public void AddEntry(string IPAddress, string comment)
{
SqlConnection con = new SqlConnection(_conString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "INSERT Guestbook (IPAddress,Comment)" + " VALUES (@IPAddress, @Comment)";
cmd.Parameters.AddWithValue("@IPAddress", IPAddress);
cmd.Parameters.AddWithValue("@Comment", comment);
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
public Guestbook()
{
_conString = WebConfigurationManager.ConnectionStrings["Guestbook"]. ConnectionString;
}
}
File: Web.config
<configuration>
<connectionStrings>
<add name="Guestbook"
connectionString="Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" />
</connectionStrings>
</configuration>
Related examples in the same category