I am trying to add the value of the column Annual_Fees in dataGridViewAFp1
to a new value AF2 from the textbox txtp1AF.T
Assuming everything else is working fine on your side, the main problem is that you're using the same Update
command contained in your cmd
variable, that you used before to update the database, to try to fill your dt
with the updated values. Instead you must use a Select
command for that purpose, as follows:
Change this:
DataTable dt = new DataTable();
SqlDataAdapter adap = new SqlDataAdapter(cmd);
adap.Fill(dt);
//dataGridViewAFp1.DataSource = dt;
to this:
DataTable dt = new DataTable();
SqlDataAdapter adap = new SqlDataAdapter("select * from P1", conn);
adap.Fill(dt);
dataGridViewAFp1.DataSource = dt;
EDIT: Adding full working code. In this sample, column ListPrice
(column index 9) is updated for the first 2 data rows from 100.00
to 200.00
(watch). I'm using your code, just changing table and column names.
private void btnEnterAFp1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\AdventureWorks2014.mdf;Integrated Security=True;Connect Timeout=30");
decimal AF2;
decimal AF11;
decimal ResultAF;
if (string.IsNullOrWhiteSpace(txtp1AF.Text))
{
MessageBox.Show("Please Enter fee", "Oops", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
if (dataGridViewAFp1.Rows[0].Cells[9].Value != null)
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
decimal.TryParse(dataGridViewAFp1.Rows[0].Cells[9].Value.ToString(), out AF11);
AF2 = Convert.ToDecimal(txtp1AF.Text);
ResultAF = AF11 + AF2;
String updatedAF = Convert.ToString(ResultAF);
cmd.CommandText = @"Update Production.Product set ListPrice=@af where Name = 'Adjustable Race' OR Name = 'Bearing Ball'";
cmd.Parameters.AddWithValue("@af", updatedAF);
int n = cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter adap = new SqlDataAdapter("select * from Production.Product", conn);
adap.Fill(dt);
dataGridViewAFp1.DataSource = dt;
conn.Close();
MessageBox.Show("Record Updated Successfully ");
txtp1AF.Text = " ";
}
}
}