这是我的代码
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.)
答案 0 :(得分:2)
如果cidshow.SelectedItem
是DataRowView
,则无法按照您的方式使用它。
尝试使用以下内容访问您需要的值:
... 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"]);
....