2

以下のコードを使用して、データベースから会社のリストを取得し、それらをリスト ビューに読み込みます。それはうまくいっています。

conn.Open();
string pricesqry = "SELECT company, url FROM companies";
SqlCommand pricescmd = new SqlCommand(pricesqry, conn);
SqlDataReader pricesreader = pricescmd.ExecuteReader();

while (pricesreader.Read())
{
    ListViewItem company = new ListViewItem(pricesreader["company"].ToString());
    company.SubItems.Add(pricesreader["url"].ToString());
    company.SubItems.Add("Blank for now..");

    pricesList.Items.Add(company);
}
conn.Close();

ただし、リストを会社名でアルファベット順に並べたい場合は、選択クエリを次のように変更します。

string pricesqry = "SELECT company, url FROM companies ORDER BY company";

リストビューにデータはロードされません。セクションごとの順序を削除すると、データが再び表示されます。私は何を間違っていますか?

4

2 に答える 2

0

NULLデータベースに がある場合は、次のようにリーダーから値を取得することをお勧めします。

会社とURLが文字列であると仮定します。

ListViewItem company = new ListViewItem(Convert.IsDBNull(pricesreader.GetOrdinal("company")) ? null : pricesreader.GetString(pricesreader.GetOrdinal("company")));

company.SubItems.Add(Convert.IsDBNull(pricesreader.GetOrdinal("url")) ? null : pricesreader.GetString(pricesreader.GetOrdinal("url")));

お役に立てれば。

于 2012-08-23T15:46:12.423 に答える
0

クレジットはMinitechに送られます。

私の「会社」列タイプはテキストに設定されていました。varchar に変更し、期待どおりに動作するようになりました。

于 2012-08-23T15:47:36.523 に答える