1

OrderList と Order という 2 つのオブジェクトを作成する必要があります。

これら 2 つのオブジェクトを使用して、DataGridView に注文履歴を入力する必要があります。ただし、接続またはその他のドラッグ アンド ドロップ コントロールにバインディング ソースを使用しないように指示されています。残念ながら、Google によると、これらはこの種の問題に対する最も一般的なオプションのようです。

誰かが私を正しい方向に向けることができますか? C# の経験はあまりありません。

ありがとう。

4

3 に答える 3

6

Orderクラスを作成することができます:

public class Order
{
    public int OrderID { get; set; }
    public DateTime OrderDate { get; set; }
}

データベース レコードを読み取り、注文コレクションを読み込みます

List<Order> orders = new List<Order>();
using(SqlConnection cn = new SqlConnection("..."))
using (SqlCommand cm = cn.CreateCommand())
{
    cn.Open();
    cm.CommandText = "SELECT OrderId, OrderDate FROM Orders";
    SqlDataReader dr = cm.ExecuteReader();
    while (dr.Read())
    {
        orders.Add(new Order()
        {
            OrderId = dr.GetInt32(dr.GetOrdinal("OrderId")),
            OrderDate = dr.GetDateTime(dr.GetOrdinal("OrderDate"))
        });
    }
}

GridView 部分については、 ASP.NET データ バインディングの概要を参照する必要があります。

于 2010-01-07T18:59:33.673 に答える
0

IEnumerable を実装する任意のデータ コレクションにバインドできます。これは、グリッドで DataBind() 関数を呼び出すと、データを反復処理し、リフレクションを使用してコレクションに格納されている各オブジェクトのプロパティにグリッドをバインドするためです。オブジェクトを検索し、グリッド内のバインドされたフィールドごとに指定された DataField に一致するプロパティを探します。

于 2010-01-07T19:03:28.927 に答える
0

これは実際にはかなり些細な問題です。次のものを使用する必要があります。

dataadapter とそれに関連付けられたデータセットを取得したら、単純にループしてグリッドを埋めることができます。

于 2010-01-07T19:03:14.837 に答える