1

私がやりたいことは、データ テーブルを使用してデータを取得し、フォームmySQLに表示することです。Listbox

プレイヤーの名前とスコアをスコアの高い順に表示するにはどうすればよいですか?

これまでのところ、プレーヤーの名前またはプレーヤーのスコアを表示することができました。

MySqlConnection myConn = new MySqlConnection(connStr);

string sqlStr = "SELECT * FROM highscore";

MySqlDataAdapter dAdapter = new MySqlDataAdapter(sqlStr, myConn);

DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
dAdapter.Dispose();
lstNames.DataSource = dTable;
lstScores.DataSource = dTable;
lstNames.DisplayMember = "Name";

2 つの別々のリスト ボックスを簡単に使用しようとしましたが、任意の順序で並べ替えることができないことに気付きました。

以下は変更後のポールです

                 MySqlConnection myConn = new MySqlConnection(connStr);

             string sqlStr = "SELECT Name + ' ' + Score as NameAndScore " + "FROM highscore ORDER BY Score DESC";

             MySqlDataAdapter dAdapter = new MySqlDataAdapter(sqlStr, myConn);

             DataTable dTable = new DataTable();
             dAdapter.Fill(dTable);
             dAdapter.Dispose();
             lstNames.DisplayMember = "NameAndScore";
             lstNames.DataSource = dTable;
4

2 に答える 2

1

あなたのSQLでかなりのことができます:

MySqlConnection myConn = new MySqlConnection(connStr);

string sqlStr = "SELECT CONCAT(Name, ' ', Score) as NameAndScore " +
                "FROM highscore ORDER BY Score DESC";

MySqlDataAdapter dAdapter = new MySqlDataAdapter(sqlStr, myConn);

DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
dAdapter.Dispose();
lstNames.DisplayMember = "NameAndScore";
lstNames.DataSource = dTable;
于 2013-03-14T21:23:22.373 に答える
0

スコアを保持するフィールドが「スコア」であるとしましょう。クエリは次のようになります。

string sqlStr = "SELECT * FROM ハイスコア順 スコア DESC";

基本的に、スコアの降順でレコードを並べ替える必要があります。これは単純なはずです

さらに問題がある場合はお知らせください

于 2013-03-14T21:26:17.637 に答える