[英]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.