无法显示GridView

时间:2014-02-03 23:07:11

标签: c# winforms gridview

这是我的代码

public void gridshow() {
        sc.Open();
        //int custtid ;
        //custtid = (int)cidshow.SelectedItem;
        SqlDataAdapter da = new SqlDataAdapter("select Cust_id , Cust_name from Cust_master where Cust_id = '" + cidshow.SelectedItem + "'", sc);
        DataSet ds = new DataSet();
        da.Fill(ds,"Cust_master");
        custshow.DataSource = ds.Tables[0];
        sc.Close();

    }

引发的错误是

(Conversion failed when converting the varchar value 'System.Data.DataRowView' to data type int.)

2 个答案:

答案 0 :(得分:2)

如果cidshow.SelectedItemDataRowView,则无法按照您的方式使用它。

尝试使用以下内容访问您需要的值:

... Convert.ToString(((DataRowView)cidshow.SelectedItem)["customerId"]) ...

另外,请查看参数化查询。它更安全,它使您的查询在将来更容易阅读和维护。

var da = new SqlDataAdapter(
    "select Cust_id , Cust_name from Cust_master where Cust_id = @custId", sc);

da.SelectCommand.Parameters.AddWithValue("@custId", yourCustomerId);

答案 1 :(得分:0)

如果您的cidshow是数据绑定组合框,SelectedItem会返回DataRowView。您必须从该对象中提取您的ID字段

 ....
 int custtid ;
 DateGridView custdgv = cidshow.SelectedItem;
 int custtid = Convert.ToInt(custdgv["customerId"]);
 ....