简体   繁体   English

在c#中从数据库检索数据到dataGridView时出现空行

[英]Empty rows when retrieving data from database to dataGridView in c#

Why do I get blank rows when I retrieve rows from MySQL database to dataGridView?当我从 MySQL 数据库检索行到 dataGridView 时,为什么会得到空行? I end up getting the amount of rows but its empty (it has no text).我最终得到了行数,但它是空的(它没有文本)。

this is my code so far:到目前为止,这是我的代码:

        private void button2_Click(object sender, EventArgs e)
    {
        string constring = "Data Source = localhost; port = 3306; username = root; password = 0159";
        MySqlConnection conDataBase = new MySqlConnection(constring);
        MySqlCommand cmdDataBase = new MySqlCommand("Select * FROM TopShineDB.Table1 ;", conDataBase);
        using (MySqlConnection conn = new MySqlConnection(constring))
        {
            try
            {
                MySqlDataAdapter sda = new MySqlDataAdapter();
                sda.SelectCommand = cmdDataBase;
                DataTable dt = new DataTable();
                sda.Fill(dt);

                BindingSource bs = new BindingSource();
                bs.DataSource = dt;
                dataGridView1.DataSource = bs;
                sda.Update(dt);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

I tried below code sample to get data from database and bind to datagridview.我尝试了下面的代码示例从数据库中获取数据并绑定到 datagridview。

var ConnectionString = "your ConnectionString";
MySqlConnection connect = new MySqlConnection(ConnectionString);
MySqlCommand cmd = new MySqlCommand("your query");
connect.Open();
MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet(); 
adp.Fill(ds); 
DataTable dt = new DataTable();
dt = DtSet.Tables[0];
dataGridView1.DataSource = DtSet.Tables[0];
connect.Close();

Try This:试试这个:

private void BindGrid()
{
    string conString = @"Data Source=localhost;port=3306;Initial Catalog=TopShineDB;User Id=root;password=0159";
    using (MySqlConnection con = new MySqlConnection(conString))
    {
        using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM Table1", con))
        {
            cmd.CommandType = CommandType.Text;
            using (MySqlDataAdapter sda = new MySqlDataAdapter(cmd))
            {
                using (DataTable dt = new DataTable())
                {
                    sda.Fill(dt);
                    dataGridView1.DataSource = dt;
                }
            }
        }
    }
}

*Just Clear your Columns you define in DataGridView * *只需清除您在 DataGridView 中定义的列 *

      private void button2_Click(object sender, EventArgs e)
{
    string constring = "Data Source = localhost; port = 3306; username = root; password = 0159";
    MySqlConnection conDataBase = new MySqlConnection(constring);
    MySqlCommand cmdDataBase = new MySqlCommand("Select * FROM TopShineDB.Table1 ;", conDataBase);
    using (MySqlConnection conn = new MySqlConnection(constring))
    {
        try
        {
            MySqlDataAdapter sda = new MySqlDataAdapter();
            sda.SelectCommand = cmdDataBase;
            DataTable dt = new DataTable();
            sda.Fill(dt);

       
                 dataGridView1.Columns.Clear();
            dataGridView1.DataSource = bs;
  
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

c# C#

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

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