How To Add Value To A Column And Update Database

前端 未结 1 699
后悔当初
后悔当初 2020-12-21 14:48

I am trying to add the value of the column Annual_Fees in dataGridViewAFp1 to a new value AF2 from the textbox txtp1AF.T

相关标签:
1条回答
  • 2020-12-21 15:26

    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 = " ";
                }
            }
        }
    

    0 讨论(0)
提交回复
热议问题