【问题标题】:Update DataGrid with dataset c#使用数据集 c# 更新 DataGrid
【发布时间】:2019-06-21 21:20:52
【问题描述】:

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

【问题讨论】:

  • 有什么问题?
  • 您是在插入数据然后想要刷新页面上的数据吗?我没有看到您在代码中的哪个位置执行此操作。
  • 你是在 Winforms 还是 ASP.NET 中工作
  • 我在 Winforms 上,我使用程序 formulaire_principal.tableau() 刷新数据

标签: c# sql-server


【解决方案1】:

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

Easier Way (IMO):<DataGrid ItemsSource="{Binding Source=YourData}">

我不打算重新发明另一篇文章,因此请参阅this Stack Overflow 线程以获取有关将 DataGrid 绑定到对象源的更多信息,并确保使用存储过程调用中的数据更新此对象。这篇文章中有大量关于做什么和不做什么的信息。 this 站点也应该让您对 Windows 窗体中的数据绑定有一个更一般的了解。

如果没有看到将数据绑定到网格的位置,很难给你一个准确的答案,所以考虑到问题中包含的信息,我能做的就差不多了。

希望对您有所帮助。 À la prochaine,我的朋友。

【讨论】:

    【解决方案2】:

    如果你喜欢,我正在使用这个原型:

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

    【讨论】:

    • 谢谢你,我这样做了,它是工作! string query = @"select * from produits"; SqlDataAdapter 测试 = 新的 SqlDataAdapter(查询, loaddatabaseconnexion.connexion_BDD());数据集 ds = new DataSet(); dataGridView1.DataSource = null; test.Fill(ds, "产品"); dataGridView1.DataSource = ds.Tables[0];
    猜你喜欢
    • 2013-12-25
    • 2013-06-25
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2019-05-17
    相关资源
    最近更新 更多