组合框中的System.Data.DataRowView

时间:2012-09-05 22:10:50

标签: c# visual-studio-2010

我只是试图将数据插入到Sql中选择项目来自windows窗体中的组合框。 但是在数据库中插入后没有显示所选项的值,但它显示(“System.Data.DataRowView”)。

我的插入代码是。

FORM LOAD -

SqlDataAdapter adp = new SqlDataAdapter("select * from CPP", con);
        DataSet ds= new DataSet();
        adp.Fill(ds);
        comboBox10.DisplayMember = "Name";
        comboBox10.ValueMember = "Id";
        comboBox10.DataSource = ds.Tables[0];

在BUTTON CLICK EVENT上 -

SqlCommand cmd = new SqlCommand("Insert into CPP (Name) values ('" + comboBox10.SelectedItem.ToString() + "')", con);
        cmd.ExecuteNonQuery();

插入选择项后。 它显示在数据库表 - (“System.Data.DataRowView”)

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下更新的代码。

var row = (DataRowView)comboBox10.SelectedItem;    
SqlCommand cmd = new SqlCommand("Insert into CPP (Name) values ('" + row["Name"].ToString() + "')", con);    
cmd.ExecuteNonQuery();

答案 1 :(得分:0)

您需要设置DisplayMemberValueMember属性。

ComboBox1.DisplayMember = "Foo";
ComboBox1.ValueMember = "Bar";

如果未指定这些属性,则ComboBox之类的ListControl不知道要显示的内容。因此它只显示项目的类型为字符串(Type.FullName)。