1

コードにオブジェクト「キット」があります。

class Kit
{
    private int _CK_ID;

    public int CK_ID
    {
        get { return _CK_ID; }
        set { _CK_ID = value; }
    }

}

私のコードでは、キットのリストを埋めたい

List<Kit> kits = new List<Kit>();

キットにデータベースからのデータを入力したい

私には1つの解決策があります:

データをリーダーに渡し、ループして新しいキットをリストに挿入します。

しかし、私はそれを「いいね」したいのですが、どうすればこのようなことができますか

kits.fillData();
4

3 に答える 3

2

それはあなたがあなたのコードをどのように構造化したいか、そしてあなたが最もよく知っているものに依存しますあなたはEntityFrameworkやNHibernateのようなものを使うことできます

これは明らかに、フレームワーク、タスク要件、およびスキルセットに依存します。

これがオプションでない場合は、クラスstored procedureと同じ列名を引き出すorselectステートメントに基づいてこれを行うことができます。Kit

public class KitList : List<Kit>
{
  public void FillList()
  {
    using (SqlConnection con = new SqlConnection(""))
    {
      var cmd = new SqlCommand("GetData", con);
      var dt = new DataTable();
      var sda = new SqlDataAdapater(cmd);
      sda.Fill(dt);
      foreach(var row in dt.Rows)
      {
        Kit k = new Kit();
        foreach(var col in dt.Columns)
        {
          k.GetType().GetProperty(col.Name).SetValue(obj, row[col.Name], null);
        }
        this.Add(k);
      }
    }
  }
}
于 2013-02-26T13:46:32.773 に答える
1

Kitオブジェクトがそれ自体を埋めるのはなぜですか?

次のようなものを実装できます。

class KitCollection : List<Kit>
{
    public void FillData()
    {
        Random rnd = new Random();
        int i = 10; //let say 10 random data

        for (int j = 0; j < 10; j++)
        {
            Kit kit = new Kit();
            kit.CK_ID = rnd.Next(1, 100);
            this.Add(kit);
        }
    }
}

そしてそれを次のように使用します:

    KitCollection list = new KitCollection(); // can be easily cast to List<Kit>
    list.FillData();

Random Data? 確かに、その場合、次のような簡単な方法を使用して、確かにそれを埋めることができます

private static void FillRandomData(List<Kit> lst)
{
    Random rnd = new Random();
    int i = 10; //let say 10 random data

    for (int j = 0; j < 10; j++)
    {
        Kit kit = new Kit();
        kit.CK_ID = rnd.Next(1, 100);
        lst.Add(kit);
    }
}
于 2013-02-26T13:45:53.180 に答える
1

List<Kit>次のような拡張メソッドを作成します。

public static void fillData(this List<Kit> kits) { }

そしてそこにkitsオブジェクトを埋めます。次に、それをクラスに入れる必要がstaticあり、それを使用するファイルの先頭に名前空間を含める必要があります。したがって、次のようなコードがあるとします。

namespace MyApplication.Extensions
{
    public static class MyExtensions
    {
        public static void fillData(this List<Kit> kits) { }
    }
}

using次に、それを使用するファイルにステートメントを追加します。

using MyApplication.Extensions;

あなたがList<Kit>これを行うことができます:

List<Kit> kits = new List<Kit>();
kits.fillData();
于 2013-02-26T13:40:27.140 に答える