当我向数据库中添加数据时,我尝试更新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);
答案 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窗体中数据绑定的更一般的概念。
在不知道将数据绑定到网格的位置的情况下很难给出确切的答案,因此,考虑到问题中包含的信息,这大约是我能做的。
希望有帮助。蒙阿米,亲爱的