リストボックスとデータベースクラスを持つフォームがあります。フォームは、文字列を返すデータベースからメソッドを呼び出します。
public listItem()
{
InitializeComponent();
Db = new Database();
itemList = new List<string>();
showAllItems();
}
ここで、showAllItems 関数は、リストを返す Db.getAllitems() 関数を呼び出します。
private void showAllItems()
{
itemList = Db.getAllItems();
lb_itemList.DataSource = itemList;
}
リストには、リストボックス内のすべての項目の名前が表示されます。でも、商品説明も返して欲しいです。しかし、リストボックスに説明を表示したくありません。選択したアイテムの説明を表示するlistBoxの横のラベルに表示したい。
私の主な問題は、リストボックスにすべてのデータを表示せずに複数のデータを返す方法がわからないことです。リストボックスから選択した項目に応じて、リストボックスの名前と他のデータをラベルのリストボックスの横に表示したいだけです
public List<string> getAllItems()
{
List<string> itemList = new List<string>();
SQLiteConnection connection = new SQLiteConnection("Data Source=HCI.db");
connection.Open();
SQLiteCommand cmd = new SQLiteCommand("SELECT rid, name, category, price, status, specific FROM items", connection);
SQLiteDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
//itemList.Add(reader.GetString(reader.GetInt64(rid)));
itemList.Add(reader.GetString(reader.GetOrdinal("name")));
itemList.Add(reader.GetString(reader.GetOrdinal("category")));
itemList.Add(reader.GetString(reader.GetOrdinal("price")));
itemList.Add(reader.GetString(reader.GetOrdinal("status")));
itemList.Add(reader.GetString(reader.GetOrdinal("specific")));
}
}
connection.Close();
return itemList;
}