から取得した値を使用して、いくつかのボタンのテキスト (コンテンツ) を設定したいと考えていますmysql
。
今まで私はいつもこのようにしていました:
if (rdr.Read())
{
Item1.Visibility = Visibility.Visible;
Item1txt.Text = rdr.GetString("item_name");
}
if (rdr.Read())
{
Item2.Visibility = Visibility.Visible;
Item2txt.Text = rdr.GetString("item_name");
}
if (rdr.Read())
{
Item3.Visibility = Visibility.Visible;
Item3txt.Text = rdr.GetString("item_name");
}
各ボタンで正しい値を取得するため、この方法は正常に機能しますが、可読性が低下します..
このプロジェクトを始めたとき、私は C# の知識がまったくなかったので、次のようなことを試しました。
while (rdr.Read())
{
Item4.Visibility = Visibility.Visible;
Item4txt.Text = rdr.GetString("item_name");
Item5.Visibility = Visibility.Visible;
Item5txt.Text = rdr.GetString("item_name");
}
しかし、これにより、ボタンのデータベースから取得したのと同じ値が得られました..
例:
button 1: test1 | button 2: test1 | button 3: test1.. etc..
私が必要なもの:
button 1: test1 | button2: test2 | button 3: test3.. etc..
C# の知識は日々向上しているので、新しいことを学びたいと思っています。
今、私は foreach ループを使用しようとしていますが、何かが足りないと感じています:
using (MySqlConnection conn = new MySqlConnection(_CS))
{
conn.Open();
string cmd = "SELECT * FROM ordertopos LIMIT 10";
MySqlCommand custid = new MySqlCommand(cmd, conn);
using (MySqlDataReader rdr = custid.ExecuteReader())
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Load(rdr);
foreach (System.Data.DataRow row in dt.Rows)
{
Orderl1.Text = row["customerid"].ToString();
}
}
}
基本的に、mysql から取得したボタンのコンテンツを、より効率的で保守しやすいコードに設定する方法を知りたい..
私はかなり新しいforeach
ので、具体的にお願いします。