簡體   English   中英

C#-Datagridview不顯示來自MySQL的數據

[英]C# - Datagridview does not show data from MySQL

我有一個datagridview應該包含mysql數據庫中的所有用戶。 對於我的問題,它根據MySQL中的行數添加行,但是不顯示任何數據。 參見下圖(我在數據庫中有2行):

屏幕截圖

這是我嘗試過的代碼:

using MySql.Data.MySqlClient;

namespace SampleDatabaseQueries
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }

        MySqlConnection conn;
        MySqlCommand cmd;
        private void Main_Load(object sender, EventArgs e)
        {
            string connString = "server=localhost;user=root;password=;database=test_db";
            conn = new MySqlConnection(connString);

            showData();
        }

        public void showData()
        {

            string query = "SELECT * FROM test_db.users;";
            cmd = new MySqlCommand(query, conn);

            conn.Open();
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = cmd;
            DataTable dTable = new DataTable();
            adapter.Fill(dTable);

            dgUsers.DataSource = dTable;

            conn.Close();
        }
    }
}

編輯:上面的代碼有效,數據已經加載,但是它添加了另一列,所以我一開始沒有看到(因為您可以看到上面的屏幕截圖中的長水平滾動條)。 為了解決這個問題,我刪除了手動添加的列,並將查詢更改為:

SELECT username AS Username, password AS Password FROM test_db.users;

謝謝!

替換為:

MySqlDataAdapter adapter = new MySqlDataAdapter();

帶有:

using (MySqlDataAdapter reader = new MySqlDataAdapter(cmd))
{
    adapter.Fill(dTable);
}

編輯

為了進一步改進,您可以制作一個數據庫連接類,我想您正在使用來自oracle的MySql連接器,因此您可以查看他們的文檔以了解如何執行此操作。 這是一個可以使您開始最基本的事情的鏈接,例如連接和填充數據表: MySql連接器文檔

編輯1

正如您所說,我的解決方案無效,這是我剛剛測試過的另一種可行的解決方案。

DataTable dTable = new DataTable();
conn.Open();
string query = "SELECT * FROM test_db.users;";
MysqlCommand cmd = new MySqlCommand(query, conn);
using (MySqlDataAdapter reader = new MySqlDataAdapter(cmd))
{
    adapter.Fill(dTable);
}
dgUsers.DataSource = dTable;
conn.Close();

這應該工作。 如果數據表未顯示任何行(空行表示發現了某行),則存在另一個問題,可能您的數據庫為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM