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

動作しましたが、Button Add(データベースに新しいレコードを追加します)があります

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 に答える