在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条数据,但是数据库里面是可以看到数据的