MysqlDataAdapter将数据填充到DataTable后行全为null

DataSet ds=new DataSet();
DataTable dt=new DataTable();           
String connstr="server=localhost;user id=root;password=root;database=legend";         
MySqlConnection conn=new MySqlConnection(connstr);
conn.Open();
String cmdstr="select * from `character`";
MySqlCommand cmd=new MySqlCommand(cmdstr,conn);
MySqlDataAdapter ad=new MySqlDataAdapter(cmd);
ad.Fill(ds,"c");
dt=ds.Tables["c"];

图片说明

图片说明

可以获取到列但是行都为null,求大佬帮忙解答这是什么原因TAT

String cmdstr="select * from character"; select * from character 查找的表名是 "character"
ad.Fill(ds,"c") 数据适配器的Fill 函数第二个参数 也就是你写的 "c" 这个参数代表的意思是映射数据库中的 真实表名.跟你sql 语句中的表 character 不一致,改成一致的
也就是写成 ad.Fill(ds,"character")
希望能解决你的问题.

字段需要循环dt获取,

foreach (DataRow dr in dt.Rows)
{
    //下面根据字段名取值
    dr["字段名"].ToString();
}