私はmysqlデータベースのすべてのユーザーを含むdatagridviewを持っています。私の問題では、MySQLの行数に基づいて行を追加しますが、データは表示されません。下の画像を参照してください(私は、データベース内の2行を持っている):C# - DatagridviewにはMySQLのデータが表示されません
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();
}
}
}
EDIT:
はここで私が試した私のコードはコードが動作する上で、データがすでにロードされましたが、それは追加されます別のコラムでは、私は最初に見ていませんでした(上記のスクリーンショットで長い水平スクロールを見ることができます)。それを解決するために、私は私が手動で追加した列を削除し、私にクエリを変更:
SELECT username AS Username, password AS Password FROM test_db.users;
ありがとうございます!
私はデバッガのDataTableを見て、列名がテーブルプロパティのソース列名と一致することを確認します。 –
クラスレベルのコマンドや接続も使用しません。必要なときにそれらを作成し、もはや不要になったときにそれらを破棄します(例外がスローされた場合でも)。これを行う便利な方法は、 'using'ブロックを使うことです。 –
の名前は同じです。あなたは私が行うすべてのメソッドにmain_loadからconnString、connなどを作成するだけでいいのですか? – user6583346