这是我的代码
sc.Open();
SqlCommand cmd = new SqlCommand("select Cust_id from Cust_master where Cust_id = '"+cidshow.SelectedItem+"' " , sc);
cmd.ExecuteNonQuery();
SqlDataReader sdr;
sdr = cmd.ExecuteReader();
while (sdr.Read())
{
cid.Text = sdr.GetInt32(0).ToString();
}
实际上我的表单中有一个组合框,它保存了客户ID的值。我只想将数据库中的值提取到涉及相同组合框的文本字段..但它在我的代码中给出了这个错误。
将varchar值'System.Data.DataRowView'转换为数据类型int时转换失败。
答案 0 :(得分:0)
ExecuteNonQuery()
会返回受影响的行数,因此一旦解决了问题,您仍然无法获得所需的值。
您需要使用ExecuteReader()
,这将返回您的查询结果。
请参阅:http://msdn.microsoft.com/en-us/library/9kcbe65k%28v=vs.110%29.aspx
您应该可以执行以下操作:
SqlCommand cmd = new SqlCommand("select Cust_id from Cust_master where Cust_id = '"+cidshow.SelectedItem+"' " , sc);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
cid.Text = reader[0].ToString();
}