c# - MySqlDataAdapter使用Update以后在使用Fill填充Table时得不到数据
伊谢尔伦
伊谢尔伦 2017-04-17 15:26:28
[MySQL讨论组]

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

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
阿神

碰到同样的问题,求助怎么解决的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号