|
xxx
DataGrid Editing - C#
by Charles Carroll
This page demonstrates how basic datagrid editing can be acoomplished!
filename=/experiments/datagridedit/publishers_cs.aspx
<%@ Trace="true" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="C#" runat="server">
string strConn;
protected void Page_Load(Object S, EventArgs E)
{
strConn="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=";
strConn += Server.MapPath (@"\experiments\data\biblio.mdb") + ";";
if (! IsPostBack)
{
FillUpGrid();
}
} // end page_load
protected void FillUpGrid()
{
OleDbConnection Conn= new OleDbConnection();
OleDbDataReader Rdr=null;
try
{
string strSQL;
strSQL="select * from publishers where state='NY'";
Conn=new OleDbConnection(strConn);
OleDbCommand Cmd=new OleDbCommand(strSQL,Conn);
Conn.Open();
Rdr=Cmd.ExecuteReader();
D1.DataSource = Rdr;
D1.DataBind();
// litAmy.Text="hi<br> <b>glad to see you</b><br> hello";
} // end try
catch (Exception excl)
{
litExc.Text ="<font color='red'>";
litExc.Text +=excl.ToString();
// litExc.Text += "<blockquote>" + excl.StackTrace() + "</blockquote>";
litExc.Text += "</font>";
} // end catch
finally
{
if (Rdr !=null)
{
if (Rdr.IsClosed==false) {Rdr.Close();}
}
if (Conn != null)
{
if (Conn.State==System.Data.ConnectionState.Open) {Conn.Close();}
}
} // end finally
} // end FillUpGrid
protected void DataEdit(Object S, DataGridCommandEventArgs E)
{
D1.EditItemIndex=(int) E.Item.ItemIndex;
FillUpGrid();
} // end DataEdit
protected void DataUpdate(Object S, DataGridCommandEventArgs E)
{
D1.EditItemIndex=(int) E.Item.ItemIndex;
TextBox CompanyName=(TextBox) E.Item.Cells[2].Controls[0];
TextBox CompName=(TextBox) E.Item.Cells[3].Controls[0];
TextBox PhoneNum=(TextBox) E.Item.Cells[4].Controls[0];
TextBox FaxNum=(TextBox) E.Item.Cells[5].Controls[0];
TextBox Address=(TextBox) E.Item.Cells[6].Controls[0];
TextBox City=(TextBox) E.Item.Cells[7].Controls[0];
TextBox State=(TextBox) E.Item.Cells[8].Controls[0];
TextBox Zip=(TextBox) E.Item.Cells[9].Controls[0];
TextBox Comments=(TextBox) E.Item.Cells[10].Controls[0];
// Update publishers set Name='yyy',Company Name='Prentice Hall', Fax='555-1212' where PUBID=56
string strSQL="";
strSQL +="Update publishers set ";
strSQL +="[Company Name]='" + CompanyName.Text + "', ";
strSQL +="Name='" + CompName.Text + "', ";
strSQL +="Telephone='" + PhoneNum.Text + "', ";
strSQL +="Fax='" + FaxNum.Text + "', ";
strSQL +="Address='" + Address.Text + "', ";
strSQL +="City='" + City.Text + "', ";
strSQL +="State='" + State.Text + "', ";
strSQL +="Zip='" + Zip.Text + "', ";
string strComments="";
if (Comments.Text=="")
{strComments="Null";}
else
{
strComments=strComments.Replace("'","''");
strComments="'" + Comments.Text + "'";
}
strSQL +="Comments=" + strComments + " ";
strSQL +=" Where PubID=" + D1.DataKeys[(int)E.Item.ItemIndex];
Trace.Write ("strSQL", strSQL);
OleDbConnection Conn=null;
try
{
Conn=new OleDbConnection(strConn);
OleDbCommand Cmd=new OleDbCommand(strSQL,Conn);
Conn.Open();
Cmd.ExecuteNonQuery();
} // end try
catch (Exception exc1)
{
Trace.Write("bad things happened","wow",exc1);
}
finally
{
if (Conn != null)
{
Conn.Close();
}
}
D1.EditItemIndex=-1;
FillUpGrid();
} // end DataUpdate
protected void DataCancel(Object S, DataGridCommandEventArgs E)
{
D1.EditItemIndex=-1;
FillUpGrid();
} // end DataCancel
</script>
<html><head><title>OLEDB Database Example</title></head>
<body bgcolor="#FFFFFF">
<form runat="server">
<font face ="Verdana"<h3>My First Database Sample</h3></font>
<asp:literal id="litExc" runat="server" />
<ASP:datagrid id="D1" autogeneratecolumns="false" runat="server"
OnEditCommand="DataEdit"
OnCancelCommand="DataCancel"
OnUpdateCommand="DataUpdate"
DataKeyField="PubID"
>
<columns>
<asp:EditCommandColumn ButtonType="LinkButton"
EditText="Edit Record" UpdateText="Save Record" CancelText="Cancel Edit" />
<asp:BoundColumn HeaderText="ID" ReadOnly="True" DataField="PubID"/>
<asp:BoundColumn HeaderText="Company Name" DataField="Company Name"/>
<asp:BoundColumn HeaderText="Name" DataField="Name"/>
<asp:BoundColumn HeaderText="Phone#" DataField="Telephone">
<ItemStyle Width="300px" />
</asp:boundcolumn>
<asp:BoundColumn HeaderText="Fax#" DataField="Fax">
<ItemStyle Width="300px" />
</asp:boundcolumn>
<asp:BoundColumn HeaderText="Street Address" DataField="Address"/>
<asp:BoundColumn HeaderText="City" DataField="City"/>
<asp:BoundColumn HeaderText="St." DataField="State"/>
<asp:BoundColumn HeaderText="Zip Code" DataField="Zip"/>
<asp:BoundColumn HeaderText="Notes About This Publisher" DataField="Comments"/>
</columns>
</ASP:datagrid>
</form></body></html>
|