从文本框中的数据库中获取值

时间:2014-02-05 08:10:49

标签: c# sql casting combobox

这是我的代码

 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时转换失败。

1 个答案:

答案 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();
    }