【问题标题】:How to update with TableAdapter?如何使用 TableAdapter 进行更新?
【发布时间】:2013-01-12 11:06:45
【问题描述】:

我正在WindowsApplication 中编写一个使用数据库的程序。 我用DataGridView 显示数据库值。 目前,我希望有可能通过DataGridView更新数据库,因此我写了这段代码:

    private void MainForm_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'databaseDataSet1.products' table. You can move, or remove it, as needed.
        this.productsTableAdapter1.Fill(this.databaseDataSet1.products);
    }

    private void upButton1_Click(object sender, EventArgs e)
    {
        this.productsTableAdapter1.Update(this.databaseDataSet1.products);
        MessageBox.Show("הנתונים עודכנו בהצלחה!");
    }

问题是没有将值更新到数据库中。 如果有人能帮我解决这个问题,我会很高兴,或者更好地解释如何使用DataGridView,因为我在互联网上没有找到任何有用的东西。

【问题讨论】:

    标签: c# winforms datagridview dataset


    【解决方案1】:
            this.Validate();
            this.productsBindingSource.EndEdit();
            this.productsTableAdapter1.Update(this.databaseDataSet1.products);
            //this.productsTableAdapter1.UpdateAll(this.databaseDataSet1);
    

    【讨论】:

      【解决方案2】:

      假设您使用 DataTableDataAdapter 填充 datagridview,您可以执行以下操作:

      private void SaveChanges()
      {
          try
          {
              if (sqlDataAdapter != null && dataTable.GetChanges() != null)
                  sqlDataAdapter.Update(dataTable);
          }
          catch (Exception exception)
          {
              MessageBox.Show(exception.Message);
          }
      }
      

      这将根据您的 DataTable 自动生成更新数据库所需的任何插入、更新或删除语句

      【讨论】:

        【解决方案3】:

        您应该将 datagridview 绑定到 DataTable 或 BindingList 对象,因为它们是可观察的。

        【讨论】:

        • 你说我需要“绑定datagridview...”是什么意思?
        • 你这样写:dataGridView1.DataSource = dTable;其中 dTable 是 DataTable() 的一个实例。现在您只需要修改数据表,它就会反映在数据网格视图中。
        【解决方案4】:
        try
        {
            this.Validate();
            this.customersBindingSource.EndEdit();
            this.customersTableAdapter.Update(this.northwindDataSet.Customers);
            MessageBox.Show("Update successful");
        }
        catch (System.Exception ex)
        {
            MessageBox.Show("Update failed");
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-04
          • 1970-01-01
          • 1970-01-01
          • 2015-05-20
          • 2011-01-05
          • 1970-01-01
          相关资源
          最近更新 更多