解决方案 »

  1.   

    放出SQL语句和参数定义
    目测是你传递的参数没有在SQL语句里定义比如可能你SQL语句里放的是@user,而参数传的名字叫@username或user,总之就是对应不上
      

  2.   

    DataSet dataset = new DataSet();
    dataset.Tables.Add("dt");
    adapter.fill(dataset,"dt");
      

  3.   

    原来异常在主题了。是挺奇怪的。有stacktrace吗?
      

  4.   

    看看这个,不过问问题的人没说最后解决了没http://www.vbforums.com/showthread.php?700005-VS-2012-MYSQL-DataAdapter-Fill-gives-KeyNotFoundException
      

  5.   

    谢谢,各位的回复,还有我调本地的Mysql数据库就可以,但是调远程服务器上就出现这样的问题,而且这2个数据库是一模一样的,包括里面的数据。
      

  6.   

    调的存储过程是没有参数的,数据库里执行sql语句就可以取到数据
      

  7.   


    哥们,你改用DataReader试试 using (var reader = dbCmd.ExecReader(dbCmd.CommandText))
                {
                    var dt = new DataTable();
                    dt.Load(reader);
                    return dt;
                }
    这样反回DataTable
      

  8.   

    恩,确定,我刚才服务端加了如下代码:    
                     DataTable dt = new DataTable();
                     dt.Columns.Add("id");
                     dt.Columns.Add("caption");
                     dt.Columns.Add("pid");
                     DataRow newRow = dt.NewRow();
                     newRow["id"] = 1;
                     newRow["caption"] = "222";
                     newRow["pid"] = 0;
                     dt.Rows.Add(newRow);
                     dataset.Tables.Add(dt);
    这个可以正确返回,字段是跟表结构一样的,现在问题根源就是从数据库读数据这个环节出问题了
      

  9.   

    Select count(*) 可以正确返回;各位朋友帮帮忙出出主意啊,到底哪个地方出问题了,头脑风暴下 哈哈
      

  10.   

    楼主看看这MySQL Connector/Net did not support the utf8mb4 character set. When attempting to connect to utf8mb4 tables or columns, an exception KeyNotFoundException was generated. (Bug #58244)试着修改你的mysql的字符集试一试。
    http://bbs.csdn.net/topics/390660725
      

  11.   

    放出SQL和参数内容
    另外你所说的在"服务端加了如下代码",也不清楚你这个服务端到底在哪里,跟数据库在同一台服务器上吗
      

  12.   

    关键不知道你SQL语句和参数里到底是否涉及到了汉字,真心猜不到
      

  13.   

    终于解决了,我刚把caption的varchar字符集改了就可以了,回来看帖发现於黾我们俩想到一块去了,给你100分 哈哈。。