Reputation: 925
In my C#,asp.net application, im inserting field values in to MySQl and later im updating fiels values after editing. I used below code. its get executed but values are not get added in Database. And also i used
numRowsUpdated = cmd.ExecuteNonQuery();
But in debugger windows, it shows as
The name 'numRowsUpdated' does not exist in the current context
My code:
protected void UpdateBtn_Click(object sender, EventArgs e)
{
int numRowsUpdated = -1;
string Query = "UPDATE employee SET EmployeeName=@a,EmpID =@b,Designation =@c,JoiningDate=@d,BankName =@e,AccountNumber = @f,Pancard =@g,PFNumber=@h WHERE id = @i" ;
if (GlobalCS.OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(Query, GlobalCS.objMyCon);
cmd.Parameters.AddWithValue("i", selectedid);
cmd.Parameters.AddWithValue("a", NameTxt.Text);
cmd.Parameters.AddWithValue("b", EmpidTxt.Text);
cmd.Parameters.AddWithValue("c", DesgTxt.Text);
cmd.Parameters.AddWithValue("d", JoinTxt.Text);
cmd.Parameters.AddWithValue("e", BankTxt.Text);
cmd.Parameters.AddWithValue("f", ACNoTxt.Text);
cmd.Parameters.AddWithValue("g", PANTxt.Text);
cmd.Parameters.AddWithValue("h", PFTxt.Text);
numRowsUpdated = cmd.ExecuteNonQuery();
}
GlobalCS.CloseConnection();
}
GridView selection:
protected void OnSelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = EmployeeGrid.SelectedRow;
selectedid = Convert.ToInt32(row.Cells[1].Text);
NameTxt.Text = row.Cells[2].Text;
EmpidTxt.Text = row.Cells[3].Text;
...
}
selectedid declaration:
namespace SimERP
{
public partial class Employee : System.Web.UI.Page
{
int selectedid = -1;
protected void Page_Load(object sender, EventArgs e)
{
LoadEmployeeData();
}
Upvotes: 0
Views: 494
Reputation: 5430
Code seems fine. You have to put @
symbol with parameter names:
Example:
cmd.Parameters.AddWithValue("@i", selectedid);
cmd.Parameters.AddWithValue("@a", NameTxt.Text);
cmd.Parameters.AddWithValue("@b", EmpidTxt.Text);
cmd.Parameters.AddWithValue("@c", DesgTxt.Text);
UPDATE:
Seems like if(!IsPostBack)
is also missing in Page_Load event:
namespace SimERP
{
public partial class Employee : System.Web.UI.Page
{
int selectedid = -1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadEmployeeData();
}
}
Upvotes: 1