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 到已知的托管提供程序本机类型的映射。
分不多 以后再散了。。各位大大求解决啊

解决方案 »

  1.   

    DataRowView drv = (DataRowView)comboBox1.SelectedItem;
    string Id = drv.Row["id"].ToString();
    cmbuserid.DataSource = ds.Tables[0].DefaultView;
    cmbuserid.DisplayMember = "name";
    cmbuserid.ValueMember = "name";
      

  2.   

    ComboBox与DropDownList是不一样的。
    使用ComboBox的SelectedItem的时候需要转换。比如:
     username = ((System.Data.DataRowView)cmbuserid.SelectedItem)["username"];
      

  3.   

    出现了这个问题:未将对象引用设置到对象的实例。
    代码是:string Id = drv.Row["id"].ToString();
      

  4.   

    drv ?  数据是否为空  调试看看 ?