简体   繁体   English

C#MySQL查询中的所有行都不会进入datagridview

[英]C# All rows from MySQL query not going into datagridview

Im trying to fill a DataGridView with the results from a MySql Query however they are not all going in. Here is my code: 我正在尝试用MySql查询的结果填充DataGridView,但是它们并没有全部输入。这是我的代码:

try
{
                conn.Open();
                player_search = new MySqlCommand("SELECT * FROM admin;", conn);
                reader = player_search.ExecuteReader();

                int counter = 0;
                while (reader.Read())
                {

                        player_list[0, counter].Value = reader.GetString(0);
                        player_list[1, counter].Value = reader.GetString(1);
                        player_list[2, counter].Value = reader.GetString(6);
                        player_list[3, counter].Value = reader.GetString(7);
                        player_list[4, counter].Value = reader.GetString(8);
                        player_list[5, counter].Value = reader.GetString(9);
                        player_list[6, counter].Value = "Remove";

                        counter = counter+1;

                }
            }

However it doesnt all go in. It only inserts the first row of the query? 但是,不是全部都插入。它仅插入查询的第一行吗? Why is it doing this? 为什么这样做呢? Im getting no errors? 我没有错误吗?

I would suggest you to try to get it using DataSet: 我建议您尝试使用DataSet来获取它:

public DataTable GetDBDataTable(MySqlConnection dbconnection, string table, string columns = "*", string clause = "")
    {
        MySqlCommand mysqlcmd = new MySqlCommand("SELECT " + columns + " FROM " + table + " " + clause +";", dbconnection);
        MySqlDataAdapter mysqlad = new MySqlDataAdapter(mysqlcmd);
        DataSet ds = new DataSet();
        mysqlad.Fill(ds);
        DataTable dt = ds.Tables[0];
        return dt;
    }

 UPDATE:     player_list.DataSource(GetDBDataTable(...));
             player_list.DataBind();

Solved it! 解决了! I had to do a long winded approach but it works! 我不得不做一个漫长的尝试,但是行得通!

MySqlCommand mysqlcmd = new MySqlCommand("SELECT * FROM admin;", conn);
            MySqlDataAdapter mysqlad = new MySqlDataAdapter(mysqlcmd);
            DataSet ds = new DataSet();
            mysqlad.Fill(ds);
            DataTable dt = ds.Tables[0];
            player_list.DataSource = dt;
            int rowIndex = 0;
            foreach (DataRow row in dt.Rows)
            {
                int i = 0;

                foreach (var item in row.ItemArray)
                {
                    if (i == 0) {
                        player_list[0, rowIndex].Value = item.ToString();
                    }
                    if (i == 1) {
                        player_list[1, rowIndex].Value = item.ToString();
                    }
                    if (i == 4)
                    {
                        player_list[2, rowIndex].Value = item.ToString();
                    }
                    if (i == 7)
                    {
                        player_list[3, rowIndex].Value = item.ToString();
                    }
                    if (i == 8)
                    {
                        player_list[4, rowIndex].Value = item.ToString();
                    }
                    if (i == 9)
                    {
                        player_list[5, rowIndex].Value = item.ToString();
                    }
                    player_list[6, rowIndex].Value = "Remove";
                    ++i;
                }
                ++rowIndex;
                i = 0;
            }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM