1

我有一个功能

public DataSet Select(string sql)
{
    //Get data source from database to DataSet
}

在 DataDriverExample 类和 form_load 中,我绑定到 datagridview。

public BindingSource bs = new BindingSource()
public void form_load()
{
    DataSource ds = DataDriverExample.Select("Select * from XYZ");
    bs.DataSource = ds;
    dataGridView.DataSoure = bs;
    dataGridView.DataMember = "TableResult";
    txtAbc.Bindings.Add("text",bs,"TableResult.Col1");
}

它有效,但我有按钮添加(向数据库添加新记录)

public void btnAdd_click()
{
    DataDriverExample.Insert("Insert into XYZ values (\"Test\",\"Hello\",\"Bla\")");
    DataSource ds = DataDriverExample.Select("Select * from XYZ");
    bs.DataSource = ds;
    bs.ResetBinding(true);
}

在我的数据库中它现在有新记录,但我收到错误Cannot bind to the property or column on the DataSource 对不起我的英语不好。任何人都可以帮助我。Tks

4

1 回答 1

1

要清理您的代码,请为您的绑定创建另一种方法,例如:

 private void LoadData()
{
    bs.ResetBinding(true);
    txtAbc.DataBindings.Clear()
    DataSource ds = DataDriverExample.Select("Select * from XYZ");
    bs.DataSource = ds;
    dataGridView.DataSoure = bs;
    dataGridView.DataMember = "TableResult";
    txtAbc.Bindings.Add("text",bs,"TableResult.Col1");
 }

然后只需调用 LoadData(); 在您的表单加载和添加方法上

    public BindingSource bs = new BindingSource()
   public void form_load()
   {
   LoadData();
   }

添加:

public void btnAdd_click()
{
    DataDriverExample.Insert("Insert into XYZ values (\"Test\",\"Hello\",\"Bla\")");
    LoadData();
}

希望这可以帮助

问候

于 2013-01-23T08:57:00.663 回答