C# mySqlAdapter.Fill不';t更新数据库后返回行

C# mySqlAdapter.Fill不';t更新数据库后返回行,c#,mysql,database,ado.net,C#,Mysql,Database,Ado.net,我使用DataTable/DataAdapter体系结构在数据库和模型对象之间进行调解。我的数据库中有两个表,两个windows窗体中有两个dataGridView。首先,我调用GetData方法来填充我的第一个dataGridView。它已成功填充。然后我更改其中的任何字段并调用UpdateTableChanges。更改的行也成功添加到数据库中。然后我再次调用GetData来填充第二个dataGridView,但没有返回任何行。第二次调用GetData时也没有任何错误。但是当我第二次不调用Up

我使用
DataTable/DataAdapter
体系结构在数据库和模型对象之间进行调解。我的数据库中有两个表,两个windows窗体中有两个
dataGridView
。首先,我调用
GetData
方法来填充我的第一个
dataGridView
。它已成功填充。然后我更改其中的任何字段并调用
UpdateTableChanges
。更改的行也成功添加到数据库中。然后我再次调用
GetData
来填充第二个
dataGridView
,但没有返回任何行。第二次调用
GetData
时也没有任何错误。但是当我第二次不调用
UpdateTableChanges
并调用
GetData
时,所有行都会返回。
UpdateTableChanges
方法之后出现了一些问题。感觉此方法更改了我的
\u适配器中的某些数据。所有方法中的所有参数都是正确的,因为如果我不调用
UpdateTableChanges
,则返回行。适配器更新数据库后,我需要更改什么以获取行?任何帮助都会很好。为了更好地理解,我删除了try/catch块

class DBModel 
{
    private readonly string _connectionString;
    private MySqlDataAdapter _adapter;
    private MySqlConnection _connection;

    public DBModel()
    {
        _connectionString = "SERVER = localhost; DATABASE = transportation; USER ID = root;";
        _connection = new MySqlConnection(_connectionString); 
        _adapter = new MySqlDataAdapter(String.Empty, _connection);
    }

    public BindingSource GetData(string selectCommand)
    {
        var bindingSource = new BindingSource();

        SetMySqlSelectCommand(selectCommand);
        var commandBuilder = new MySqlCommandBuilder(_adapter);
        var table = new DataTable();
        _adapter.Fill(table);
        bindingSource.DataSource = table;

        return bindingSource;
    }

    public void UpdateTableChanges(BindingSource bindingSource, string selectCommand)
    {
       SetMySqlSelectCommand(selectCommand);
       _adapter.Update((DataTable)bindingSource.DataSource);
    }

    private void SetMySqlSelectCommand(string selectCommand)
    {
        var mySqlCommand = _connection.CreateCommand();
        mySqlCommand.CommandText = selectCommand;
        _adapter.SelectCommand = mySqlCommand;
    }