0

私は持っていDataTableます。から特定の列をフェッチする必要がありますDataTable。たとえば、DataTableに複数の列があり、Id、Nameなどの2つの列を取得したいとします。

var item = new ListItem("k");
            item.Selected = true;
            this.formatOfReport.Items.Add(item);
            item = new ListItem("n");
            this.formatOfReport.Items.Add(item);

名前を置き換えてkとnの値を置き換えたいのですが、データは1行目と2行目にあります。名前は、たとえばsteveとmikeです。steve=kとmike= nが必要ですが、ハードコードは実行しません。以下のような参照

var item = new ListItem(dt.Rows[0][1].ToString(), dt.Rows[0][1].ToString());
            item.Selected = true;
            this.formatOfReport.Items.Add(item);
            item = new ListItem(dt.Rows[1][1].ToString(), dt.Rows[1][1].ToString());
            this.formatOfReport.Items.Add(item);
4

3 に答える 3

1

次の 2 つのオプションがあります。

// DataSource approach
formatOfReport.DataTextField = "Name";
formatOfReport.DataValueField = "Id";
formatOfReport.DataSource = dt;
formatOfReport.DataBind();

// programmatically
foreach (DataRow row in dt.Rows)
{
    int ID = row.Field<int>("Id");
    string name = row.Field<string>("Name");
    var item = new ListItem(name, ID.ToString());
    formatOfReport.Items.Add(item);
}
于 2012-11-29T14:32:13.890 に答える
1

私の理解が正しければ、 datatable からandを選択 する必要があります。Id and Name columnsfilter rows using couple of given Ids

int[] idList = new int[] { 11, 12 }; //Your Required Ids 

var results = (from r in dt.AsEnumerable()
               where idList.Contains(r.Field<int>("Id"))
               select new {Id = r.Field<int>("Id"),
                           Name = r.Field<string>("Name")}).ToList();

ddl.DataSource = results;
ddl.DataTextField = "Id";
ddl.DataValueField = "Name";
ddl.DataBind();
于 2012-11-29T15:16:23.443 に答える
0

DropDownListをバインドしたいように見えますが、このようにすることができます

  DropDownList1.DataSource = dt;
  DropDownList1.DataValueField="Id";
  DropDownList1.DataTextField="Name";
  DropDownList1.SelectedValue=//your Id
  DropDownList1.DataBind();
于 2012-11-29T14:35:31.573 に答える