代码之家  ›  专栏  ›  技术社区  ›  Alex Gordon

C从System.Data.DataRowView转换为字符串

  •  1
  • Alex Gordon  · 技术社区  · 14 年前

    我有一个ComboBox,它的数据源是一个数据表。我需要循环浏览组合框中的项目,但是我该如何做呢?我需要能够将“System.Data.DataRowView”类型的每个对象转换为字符串。非常感谢您的建议!@

    4 回复  |  直到 6 年前
        1
  •  3
  •   Jeff Ogata    14 年前

    private void button1_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("ID", typeof(int));
        dt.Columns.Add("Name", typeof(string));
    
        dt.Rows.Add(1, "A");
        dt.Rows.Add(2, "B");
        dt.Rows.Add(3, "C");
    
        comboBox1.DataSource = dt;
        comboBox1.DisplayMember = "Name";
        comboBox1.ValueMember = "ID";
    
        // use SelectedValue to select the item with ID == 2
        comboBox1.SelectedValue = 2;
    
        // use FindStringExact() to find the index of text displayed in the item
        comboBox1.SelectedIndex = comboBox1.FindStringExact("C");
    }
    

    private void button2_Click(object sender, EventArgs e)
    {
        foreach (var item in comboBox1.Items)
            MessageBox.Show(((DataRowView)item)["Name"].ToString());
    }
    
        2
  •  0
  •   David Archer    14 年前

    var newItems = new List<string>();
    for(var i = 0; i < combobox1.Items.Count; i++)
    {
       newItems.Add(combobox1.items[i].Text);
    }
    

    foreach(item in newItems)
    {
    var newVariable1 = item;
    }
    

    更多的信息和你当前的代码会很酷,我可以帮助你更具体地解决你的问题。

        3
  •  0
  •   genericuser    14 年前

    同样的解决方法,希望它有助于: 将DATAView源转换回DATABATE,然后循环通过它。

    DataView dt = (DataView)comboBox1.DataSource;
            DataTable s = dt.Table;
            foreach(DataRow dr in s.Rows)
    
                MessageBox.Show(dr[0].ToString()); 
    
        4
  •  0
  •   Learning Always    6 年前

    解决方案:

    DataTable DtShow=new DataTable();
    
    for (int i = 0; i < DtShow.Rows.Count; i++)
    
     {
    
       Console.WriteLine(DtShow.Rows[i].Field<string>(0));
    
     }
    
    **   Field<string>(0) Column number start from 0