Hi,
I have problem with my ASP.Net Code, I used GridView with Edit/Update on it. However the program seems not work correctly because it doesn't Update the OLD VALUE with the NEW VALUE.
Please help on this. thanks so much
<%@ Page Language="C#" Debug="true" MasterPageFile="MasterPage.Master" Title="Untitled Page" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.Odbc" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
{
BindGrid();
}
}
protected void NewButton_Click(object sender, EventArgs e)
{
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string BrokerCode, BrokerName;
BrokerCode = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
BrokerName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
OdbcConnection cnn = new OdbcConnection(@"dsn=MyOdbc;server=localhost;datab ase=pres;pwd=root;uid=root;integrated security=true");
cnn.Open();
OdbcCommand cmd = new OdbcCommand("UPDATE ttybroker SET bname=@BrokerName WHERE bcode=@BrokerCode", cnn);
cmd.Parameters.Add(new OdbcParameter("@BrokerName",BrokerName));
cmd.Parameters.Add(new OdbcParameter("@BrokerCode",BrokerCode));
cmd.ExecuteNonQuery();
cnn.Close();
GridView1.EditIndex = -1;
BindGrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindGrid();
}
private void BindGrid()
{
DataSet ds = new DataSet();
OdbcDataAdapter da = new OdbcDataAdapter("SELECT * FROM ttybroker", @"dsn=MyOdbc;server=localhost;database=pres;pwd=ro ot;uid=root;integrated security=true");
da.Fill(ds, "ttybroker");
DataView dv = ds.Tables[0].DefaultView;
if (ViewState["sortexpression"] != null)
{
dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString();
}
// GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataSource = dv;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGrid();
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Names="Arial" ForeColor="#0000FF"
Text="Broker Information"></asp:Label><br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="None"
BorderWidth="1px" CellPadding="3" DataKeyNames="bcode" GridLines="Vertical" AutoGenerateDeleteButton="true" OnRowUpdating="GridView1_RowUpdating" OnRowEditing="GridView1_RowEditing">
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="bcode" HeaderText="Code" />
<asp:BoundField DataField="bname" HeaderText="Name" />
</Columns>
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#DCDCDC" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>"
ProviderName="<%$ ConnectionStrings:ConnectionString2.ProviderName %>"
SelectCommand="SELECT bcode, bname FROM ttybroker"
UpdateCommand="UPDATE ttybroker SET bname = @bname WHERE bcode = @original_bcode"
DeleteCommand="DELETE FROM ttybroker WHERE bcode = @original_bcode"
OldValuesParameterFormatString="original_{0}">
<UpdateParameters>
<asp:Parameter Name="bcode" Type="string" />
<asp:Parameter Name="bname" Type="string" />
</UpdateParameters>
<DeleteParameters>
<asp:Parameter Name="@original_bcode" Type="string" />
</DeleteParameters>
</asp:SqlDataSource>
<br />
<asp:Button ID="NewButton" runat="server" Text="New" OnClick="NewButton_Click" /><br />
<asp:Label ID="Label4" runat="server" Font-Names="Arial" Font-Size="10pt" ForeColor="#0000FF"></asp:Label><br />
<br />
</asp:Content>