无法将类型为"System.String"的对象转换为类型为"System.Data.DataRowView". [英] Unable to cast object of type 'System.String' to type 'System.Data.DataRowView'.
本文介绍了无法将类型为"System.String"的对象转换为类型为"System.Data.DataRowView".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
I have ComboBox, populate with Database.. with Read Method..
string sql = "Select miscCode,miscDesc from miscMaster ";
// sql = sql + "WHERE miscCategory='Hundai' ";
sql = sql + "ORDER BY miscDesc";
//cn.Open();
cmd = new SqlCommand(sql, cn);
dr = cmd.ExecuteReader();
cmb_makeCode.Items.Clear();
cmb_makeCode.Items.Add("-- Select --");
while (dr.Read() != false)
{
cmb_makeCode.ValueMember = dr[0].ToString();
cmb_makeCode.Items.Add(dr[1].ToString());
cmb_makeCode.DisplayMember = dr[0].ToString();
}
cn.Close();
但是,当我要将"miscCode"的值存储到下面代码中的字符串变量中时,出现错误:无法将类型为"System.String"的对象转换为类型"System.Data.DataRowView" ."
But when I want to store the value of ''miscCode'' into a string varibale in below code give an error: "Unable to cast object of type ''System.String'' to type ''System.Data.DataRowView''."
private void cmb_makeCode_SelectedIndexChanged(object sender, EventArgs e)
{
DataRow selectedDataRow = ((DataRowView)cmb_makeCode.SelectedItem).Row;
string mkcd = selectedDataRow["miscCode"].ToString();
MessageBox.Show(mkcd);
}
请帮助我...
plz help me ...
推荐答案
组合框的selecteditem始终是字符串.为什么要使其成为数据行.使其如下所示.
The selecteditem of combobox will always be a string. Why do you want to make it as datarow. Make it as simple as below.
private void cmb_makeCode_SelectedIndexChanged(object sender, EventArgs e)
{
string mkcd = cmb_makeCode.SelectedItem.ToString();
MessageBox.Show(mkcd);
}
然后尝试一下.
Then try this.
private void cmb_makeCode_SelectedIndexChanged(object sender, EventArgs e)
{
string mkcd = cmb_makeCode.Text.ToString();
MessageBox.Show(mkcd);
}
这篇关于无法将类型为"System.String"的对象转换为类型为"System.Data.DataRowView".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文