search

Home  >  Q&A  >  body text

c# - MySqlDataAdapter使用Update以后在使用Fill填充Table时得不到数据

在wpf中从数据库读取到的数据binding到DataGrid,然后将修改后的DataTable更新到数据库中
第一次select查询以及绑定没有问题,updateDataTable到数据库,数据库中的数据被更新,
然后再次使用select的时候就再也查询不到数据,重新声明这个类都没有效果,除非重启软件,
请问是那里出的问题,代码如下:

public class IDbMysql
{
    MySqlConnection db_conn;
    public IDbMysql(string ip, int port, string userName, string userPwd, string database)
    {
        string str_db_conn = string.Format("Server={0};Port={1};Database={2};Username={3};Password={4};charset=utf8;", ip, port, database, userName, userPwd);
        db_conn = new MySqlConnection(str_db_conn);
        db_conn.Open();
    }

    public DataTable select(string db_string)
    {
        DataTable dt = new DataTable();
        MySqlDataAdapter adapter = new MySqlDataAdapter(db_string, db_conn);
        adapter.Fill(dt);
        return dt;
    }
    public int updateDataTable(string db_string, DataTable db_datatable)
    {
        int ret = -1;
        MySqlDataAdapter adapter = new MySqlDataAdapter(db_string, db_conn);
        MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter);
        ret = adapter.Update(db_datatable);
        return ret;
    }
}

调用函数过程:

IDbMysql db = new IDbMysql();
DataTable dt = db.select("select * from tableA");
// 这里是对dt的修改,省略一些代码
db.updateDataTable(dt);  // 这里执行都是成功的,数据库也修改了
DataTable dtNew = db.select("select * from tableA"); // 这里就查询不到数据了,然会0条数据,但是数据库里面是可以看到数据的
伊谢尔伦伊谢尔伦2782 days ago904

reply all(1)I'll reply

  • 阿神

    阿神2017-04-17 15:28:28

    Encountered the same problem, please help me solve it

    reply
    0
  • Cancelreply