I got a problem whereby do not know how to update a particular row. There is a table containing a list of jobs being indexed by JobID, listed in a gridview. whenever i choose to approve a specific job, the status of Phase changes from blank to 'Approved'. should i remove the WHERE statement, the code will change every row in the whole gridview - so may i believe i got something wrong in the SQL statement.
the code is:
Code:
protected void btnApprove_Click(object sender, EventArgs e)
{
//Int32 index = Int32.Parse(lblIndex.Text.Trim());
string index = lblIndex.Text;
string ConnString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|intranet_db.mdb";
string SqlString = "Update tblJob Set Phase = 'Approval' WHERE JobID='"+ index +"';";
try
{
OleDbConnection conn = new OleDbConnection(ConnString);
OleDbCommand cmd = new OleDbCommand(SqlString, conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Phase", "Approved");
//cmd.Parameters.AddWithValue("LastName", txtLastName.Text);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception exp)
{
Response.Write(exp.Message);
}
DetailsView1.DataBind();
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//e.Row.Attributes.Add("onMouseOver", "this.style.background='#ff0000'");
//e.Row.Attributes.Add("onMouseOut", "this.style.background='#ffffff'");
if (e.Row.Cells != null && e.Row.Cells.Count > 1)
{
// assigns the index of the grid to a label
lblIndex.Text = e.Row.Cells[1].Text.Trim();
// shows the index being selected..works fine
e.Row.Attributes.Add("onClick", "alert('Selected value: " + lblIndex.Text + "')");
}
}
