我数据库里面有一个 Member表
表里面有以下字段:MemberID,MemberName,Called;在窗体中添加一个ListBox,显示所有MemberName;再在窗体里面添加两个TextBox,分别显示MemberName,Called;我想问当我点ListBox中任何一个MemberName时,两个TextBox中的值如何随之同步改变?我用三层架构写的:ListBox中MemberName的选项从数据库中 Member表中读取。下面这代码根本不行:
if (this.listbox.SelectedIndex != -1)
            {
                this.textBox.Text=this.listbox.SelectedItem.ToString();
            }希望高手 解答!!!  求完整的代码 必有重赏... 谢谢

解决方案 »

  1.   

    晕 直接来数据查询不就行了嘛  每次点击都查询一次不可以吗?http://www.answersfull.com/question/html/Question/201207/23-60598.html
      

  2.   


            private void Form1_Load(object sender, EventArgs e)
            {
                string[] args = {"a","b","c" };
                this.listBox1.DataSource = args;
            }        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                //在各自的判断里面取到值以后到数据库中查,然后赋值。
                if (this.listBox1.SelectedItem.ToString().Equals("a"))
                {
                    this.textBox1.Text = "a1";
                    this.textBox2.Text = "a2";
                }
                if (this.listBox1.SelectedItem.ToString().Equals("b"))
                {
                    this.textBox1.Text = "b1";
                    this.textBox2.Text = "b2";
                }
                if (this.listBox1.SelectedItem.ToString().Equals("c"))
                {
                    this.textBox1.Text = "c1";
                    this.textBox2.Text = "c2";
                }
            }
      

  3.   


    不行的结果是什么?提示是什么?特别讨厌这种问题。“我的电脑启动不了,怎么办”“我的WORD运行不了,怎么回事?”每个问题都有一万多种可能的原因,不给出现象让别人帮你假设?没人有那闲工夫。
      

  4.   

    你确认以下代码是在listbox_SelectedIndexChanged下的?
    if (this.listbox.SelectedIndex != -1)
       {
       this.textBox.Text=this.listbox.SelectedItem.ToString();
       }
      

  5.   

    菜鸟初次提问请见谅! 3楼提的问题下次一定注意.  三层架构过程如下:
      
    //封装属性    public class Member
        {
            int userid;        public int Userid
            {
                get { return userid; }
                set { userid = value; }
            }
            string userName;        public string UserName
            {
                get { return userName; }
                set { userName = value; }
            }
            
            string called;        public string Called
            {
                get { return called; }
                set { called = value; }
            }
        }
    //数据中查询存储过程
    create up_T_member_selectmembername
    @id int
    as
    select membername from T_Member where memberid=@id
    //memberDAO 中写入方法
    // 查询
     public static DataTable Member()
           {
               try 
            {         
             return DbHelper.ExecuteSelectProc("Up_Member_ShowAll");
            }
            catch (Exception ex)
            {
            throw ex;
            }
           }
      public static DataTable selectmembername(Member member)
           {
               DataTable dt = null;
                   SqlParameter[] paras ={
                       new SqlParameter("@name",SqlDbType.NVarChar,5)
                  };
                   paras[0].Value = member.Userid;
                   dt = DbHelper.ExecuteSelectProc("up_T_member_selectmembername", paras);               return dt;
           }
    // 返回
            public static DataTable selectmembername(Member member)
            {
                return SysMemberDAO.selectmembername(member);
            }
    //绑定listbox
     public void banding_listbox()
      {
        this.lboxmember.DataSource = SysMemberManage.Member();
        this.lboxmember.DisplayMember = "membername";
        this.lboxmember.ValueMember = "memberid";
       }// 在窗体里调用方法
     private void lboxmember_SelectedIndexChanged(object sender, EventArgs e)
            {            MemberUser member = new MemberUser();
                member.UserName = this.lboxmember.SelectedValue.ToString();
                this.textbox.Text = SysMemberManage.selectmembername(member).ToString();
    // 最后运行程序 
      textbox中 显示: System.Data.DataRowView过程就是这样,大神帮忙! 
      

  6.   

    晕  
    SysMemberManage.selectmembername(member)
    你这个方法返回的明显是个Datatable类型啊 
    你Datatable类型Tostring(),当然是System.Data.DataRowView 这个了Datatable dt=SysMemberManage.selectmembername(member);
    this.textbox.Text=dt.rows["MemberName"].toString();
      

  7.   

    楼上的是正确的,如果数据是唯一的就可以DataTable.Row[0][0].ToString();
    如果是多条还要加条件处理
      

  8.   

    TO:7楼   Thanks
    最后一句dt.rows["MemberName"].toString();这个处理错了this.textbox.Text=dt.rows[0]["MemberName"].toString();
      

  9.   

       不好意思!最近网络出问题了,没及时回复。   通过你的提醒!恩,是这个地方出问题了。但改正后,用this.textbox.Text=dt.rows[0]["MemberName"].toString(); 还是读取不到数据,是不是绑定Listbox 方法错了?
     public void banding_listbox()
       {
       this.lboxmember.DataSource = SysMemberManage.Member(); //
       this.lboxmember.DisplayMember = "membername";
       this.lboxmember.ValueMember = "memberid";
       }
     用DataSource 进行绑定能行吗? 你以前做过这样的案例吗?  谢谢
      

  10.   


    DataRowView dv=this.listbox.SelectedItem as DataRowView
    if (dv!= null)
      {
      this.textBox.Text=dv[1].ToString();
      }
      

  11.   


    DataRowView dv=this.listbox.SelectedItem as DataRowView
    if (dv!= null)
      {
      this.textBox.Text=dv[1].ToString();
      }