使用数据集C#更新DataGrid

时间:2019-01-28 19:55:19

标签: c# sql-server

当我向数据库中添加数据时,我尝试更新DataGrid

我已经尝试过:update()refresh()和:this.produitsTableAdapter.Fill(this.databaseDataSet.produits);。

    private void Bt_ajouter_Click(object sender, EventArgs e)
    {
        string query = @"insert into produits(ref_pdt, designation_pdt, quantite_pdt, prix_pdt)values (@refp, @desig, @quant, @prix)";
        try
        {
            using (var conn = loaddatabaseconnexion.connexion_BDD())
            using (var cmd = new SqlCommand(query, conn))
            {
                cmd.Parameters.Add("@refp", SqlDbType.NVarChar).Value = tb_ref_add.Text;
                cmd.Parameters.Add("@desig", SqlDbType.NVarChar).Value = tb_des_add.Text;
                cmd.Parameters.Add("@quant", SqlDbType.Int).Value = Int32.Parse(tb_qte_add.Text);
                cmd.Parameters.Add("@prix", SqlDbType.Money).Value = Decimal.Parse(tb_qte_add.Text);


                int rowsAffected = cmd.ExecuteNonQuery();
                if (rowsAffected == 0)
                {
                    MessageBox.Show("Il y a eu un problème !");
                    conn.Close();
                }
                else
                {
                    MessageBox.Show("Données sauvegardées !");
                    formulaire_principal.tableau();

                    conn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

}

formulaire_principal.tableau();在此过程中,我有: this.produitsTableAdapter.Fill(this.databaseDataSet.produits);

2 个答案:

答案 0 :(得分:0)

如果您喜欢的话,我正在使用该原型:

//To execute your query
DataSet ds = new DataSet();
SqlDataAdapter da;
da = new SqlDataAdapter(query, conn);
da.Fill(ds, "Produits");
  

或者您可以使用SqlCommand

//To execute your query
DataSet ds = new DataSet();
SqlDataAdapter da;
da = new SqlDataAdapter(cmd);
da.Fill(ds, "Produits");
  

之后,您可以使用DataSet更新您的DataGridView

//Update your DataGridView
DataGridView1.DataSource = null;
DataGridView1.DataSource = ds.Tables("Produits");

答案 1 :(得分:0)

我看不到您当前使用提供的代码执行此操作的位置,但是调用此存储过程后,您无法将数据源更新到Grid。您可以使用带有ItemsSource属性的DataGrid的数据绑定功能来执行此操作,也可以通过编程方式执行此操作。

简便方法(IMO):<DataGrid ItemsSource="{Binding Source=YourData}"> <-您只需使用SP中的数据更新'YourData'。

我将不重述另一篇文章,因此,请参见this堆栈溢出线程,以获取有关将DataGrid绑定到对象源的更多信息,并确保使用存储过程中的数据更新该对象呼叫。这篇文章上有很多信息,关于做什么和不做什么。此外,this网站还应为您提供Windows窗体中数据绑定的更一般的概念。

在不知道将数据绑定到网格的位置的情况下很难给出确切的答案,因此,考虑到问题中包含的信息,这大约是我能做的。

希望有帮助。蒙阿米,亲爱的