0

ということで、単発レポートを作りたいと思いC#ます。

まず、次を使用してデータをロードしますLINQ

 var query = (from c in customer
                where c.id.Equals(customer_id)
                orderby c.id
                select c).FirstOrDefault();

次にdictionary、データベース内のフィールド名とラベルを含めます。

 Dictionary<string, string> list = new Dictionary<string, string>();
            list.Add("name", "Full Name");
            list.Add("address", "Address");
            list.Add("phone", "Customer Phone");
            list.Add("email", "Customer Email");

基本的に、全体を繰り返し、をフィールド名識別子としてdictionary使用したい:key

foreach (var pair in list)
            {
                graphic.DrawString(pair.Value, font, brush, startX, startY + offset);
                graphic.DrawString(":", font, brush, semicolonPos, startY + offset);
                graphic.DrawString(query.[pair.Key], font, brush, semicolonPos, startY + offset); // This is not working, any suggestion?
                offset += 40;
            }

だから私の質問は、のようなものを持つことは可能ですか**query.[pair.Key]**、それともこの場合について何か提案はありますか?

私は基本的にPHPプログラマーなので、私の考え方はまだ Web プログラミングにあるのかもしれません :D. 私の質問が混乱している場合は申し訳ありません。

4

3 に答える 3

1
foreach (var pair in list)
{
    graphic.DrawString(pair.Value, font, brush, startX, startY + offset);
    graphic.DrawString(":", font, brush, semicolonPos, startY + offset);  

    var pi=typeof(Customer).GetProperty(pair.key);
    var val= pi.GetValue(query,null);
    graphic.DrawString(val, font, brush, semicolonPos, startY + offset);
}
于 2013-02-01T15:51:47.740 に答える
0

マジックストリングを使用して顧客オブジェクトのプロパティ値にアクセスしようとしているため、実行しようとしていることは特にベストプラクティスではありません。また、関心の分離もありません。ビューはデータアクセスなどと混合されています。

'customer'変数がどのタイプであるかは示していませんが、理想的にはCustomerタイプがあり、'ビュー'は強く型付けされた方法でプロパティにアクセスします。使用しているUIテクノロジーについて説明していただければ、例を追加できます。

于 2013-02-01T15:54:40.460 に答える
0

query.[pair.Key] の代わりに pair.Key を使用できます。

 graphic.DrawString(pair.Key , font, brush, semicolonPos, startY + offset);query.[pair.Key]
于 2013-02-01T15:46:49.987 に答える