无法将“System.Data.DataRowView”类型的对象强制转换为“System.String”类型

时间:2013-12-03 08:47:14

标签: c#

这是我的代码:

   private void textBox1_TextChanged(object sender, EventArgs e)
    {
        DataView dv = new DataView(dt);
        dv.RowFilter = string.Format("Produkt LIKE '%{0}%' Or Model LIKE '%{0}%' Or Firma LIKE '%{0}%'  ", textBox1.Text);
        dataGridView1.DataSource = dv;
        foreach (string s in dv)
        {
            list.Add(s);
        }
        if (textBox1.Text.Length == 0)
        {
            list.Clear();
        }
    }

程序中没有任何错误,所以我可以运行它。但是,当我将一些文本放入文本框时,我收到的错误是这样的:“无法将'System.Data.DataRowView'类型的对象强制转换为'System.String'”。

你能告诉我,我做错了吗?。

2 个答案:

答案 0 :(得分:3)

您无法执行string s in dv,因为dv包含的DataRowViews集合不是字符串。您需要从DataRowView中的列/列中获取字符串。

答案 1 :(得分:3)

你试图将DataRowView转换为字符串,这是不可能的,我认为这不是你想要的。

foreach (DataRowView row in dv)
{
    list.Add(row["Model"].ToString()); //this will add models from selected rows to list
}