繁体   English   中英

使用数据集C#更新DataGrid

[英]Update DataGrid with dataset c#

我将数据添加到数据库时尝试更新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);

如果您喜欢,我正在使用此原型:

//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");

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

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

我不打算重新发明另一篇文章中,所以看到这个堆栈溢出线程的详细信息,关于一个DataGrid绑定到对象源,并确保您与您的存储过程调用的数据更新此对象。 这篇文章上有很多信息,关于做什么和不做什么。 此外, 站点还应该为您提供Windows窗体中的数据绑定的更一般的想法。

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

希望能帮助到你。 蒙阿米,亲爱的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM