ComboBox绑定数据 然后SelectedItem出问题!急!

peng2739956 2010-10-02 08:08:08
object username;
private void palupdate_VisibleChanged(object sender, EventArgs e)
{
SqlDataAdapter dape = new SqlDataAdapter("select * from 公交线路反馈信息 as a inner join 公交司机反馈信息 as b on a.username=b.username inner join 公交车内环境反馈信息 as c on b.username=c.username", conn);
DataSet ds = new DataSet();
dape.Fill(ds);
if (palupdate.Visible == true)
{
cmbuserid.DataSource = ds.Tables[0].DefaultView;
cmbuserid.DisplayMember = "username";
txtlines.DataBindings.Add("Text", ds.Tables[0], "CirSuggestions");
txtDirs.DataBindings.Add("Text", ds.Tables[0], "CirSuggestions1");
txtEvents.DataBindings.Add("Text", ds.Tables[0], "CirSuggestions3");
conn.Close();
}
else
{
txtlines.DataBindings.Clear();
txtDirs.DataBindings.Clear();
txtEvents.DataBindings.Clear();
}
}

private void label5_Click(object sender, EventArgs e)
{
palupdate.Visible = false;

}

private void button3_Click(object sender, EventArgs e)
{
string lines = txtlines.Text;
string dirs = txtDirs.Text;
string events = txtEvents.Text;
//int i = cmbuserid.SelectedIndex;
//string username="";
//switch (i)
//{
// case 0:
// username="pen123";
// break;
// case 1:
// username = "peng123";
// break;
// case 2:
// username = "peng123456";
// break;
//}
SqlCommand cmd = new SqlCommand("update 公交线路反馈信息 set CirSuggestions=@CirSuggestions where username=@usernameid", conn);
conn.Open();
cmd.Parameters.AddWithValue("CirSuggestions", lines);
cmd.Parameters.AddWithValue("usernameid", username);
cmd.ExecuteNonQuery();
conn.Close();
cmd.Dispose();

SqlCommand cmm = new SqlCommand("update 公交司机反馈信息 set CirSuggestions1=@CirSuggestions1 where username=@usernames", conn);
conn.Open();
cmm.Parameters.AddWithValue("CirSuggestions1", dirs);
cmm.Parameters.AddWithValue("usernames", username);
cmm.ExecuteNonQuery();
conn.Close();
cmm.Dispose();

SqlCommand com = new SqlCommand("update 公交车内环境反馈信息 set CirSuggestions3=@CirSuggestions3 where username=@usersname", conn);
conn.Open();
com.Parameters.AddWithValue("CirSuggestions3", events);
com.Parameters.AddWithValue("usersname", username);
com.ExecuteNonQuery();
conn.Close();
com.Dispose();

MessageBox.Show("修改成功", "修改信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private void cmbuserid_SelectedIndexChanged(object sender, EventArgs e)
{
username = cmbuserid.SelectedItem;
}


报错是:不存在从对象类型 System.Data.DataRowView 到已知的托管提供程序本机类型的映射。
分不多 以后再散了。。各位大大求解决啊
...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
peng2739956 2010-10-02
  • 打赏
  • 举报
回复
OK 解决了 谢谢 1楼 2楼
  • 打赏
  • 举报
回复
drv ? 数据是否为空 调试看看 ?
  • 打赏
  • 举报
回复
上面说了
peng2739956 2010-10-02
  • 打赏
  • 举报
回复
出现了这个问题:未将对象引用设置到对象的实例。
代码是:string Id = drv.Row["id"].ToString();
xray2005 2010-10-02
  • 打赏
  • 举报
回复
ComboBox与DropDownList是不一样的。
使用ComboBox的SelectedItem的时候需要转换。

比如:
username = ((System.Data.DataRowView)cmbuserid.SelectedItem)["username"];
wuyq11 2010-10-02
  • 打赏
  • 举报
回复
DataRowView drv = (DataRowView)comboBox1.SelectedItem;
string Id = drv.Row["id"].ToString();
cmbuserid.DataSource = ds.Tables[0].DefaultView;
cmbuserid.DisplayMember = "name";
cmbuserid.ValueMember = "name";

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧