下面是一个按钮中的代码,目的是将数据绑到textbox中,第一次点这个按钮,正常。再次点就出错: 
这将导致集合中的两个绑定绑定到同一个属性。 
参数名: binding  
  
  
private void button4_Click_1(object sender, EventArgs e) 
        { 
            string Myconnection = "server=.;database=shui;uid=sa;pwd=;"; 
            //string sql = "select * from yhb";             string sql = "select * from yhb where zcm='" + zcm.Text.Trim() + "'"; 
            SqlConnection Myconn = new SqlConnection(Myconnection); 
            Myconn.Open(); 
            SqlCommand STcmd = new SqlCommand(sql, Myconn); 
            SqlDataAdapter da = new SqlDataAdapter(sql, Myconn); 
            DataSet dt = new DataSet(); 
            da.Fill(dt,"tang"); 
            this.dataGridView1.DataSource = dt.Tables[0]; 
            yhm.DataBindings.Add("Text", dt, "tang.yhm"); 
        } 
我也明白是由于绑定了两次Text的缘故,只是想问个解决方案。

解决方案 »

  1.   

    你把绑定弄在PageLoad里面就可以了啊
      

  2.   

    肯定是要出现这个错误的
    不明白LZ为什要用个按钮控制数据的绑定呢?
    可以把绑定数据的代码放进当前表单的Load事件里啊
    如果非要用按钮的话,要控制它只能点一次啊
      

  3.   

    private void button4_Click_1(object sender, EventArgs e) 
            { 
                string Myconnection = "server=.;database=shui;uid=sa;pwd=;"; 
                //string sql = "select * from yhb"; 
                string sql = "select * from yhb where zcm='" + zcm.Text.Trim() + "'"; 
                SqlConnection Myconn = new SqlConnection(Myconnection); 
                Myconn.Open(); 
                SqlCommand STcmd = new SqlCommand(sql, Myconn); 
                SqlDataAdapter da = new SqlDataAdapter(sql, Myconn); 
                DataSet dt = new DataSet(); 
                da.Fill(dt,"tang"); 
                this.dataGridView1.DataSource = dt.Tables[0]; 
                yhm.DataBindings.Add("Text", dt, "tang.yhm"); 
                Myconn.Close();//这句话很重要,加上这句话,应该就没问题了。
            } 
      

  4.   

    这样可以解决你的问题
    _con = new SqlConnection("server=(local);uid=sa;pwd=;database=northwind");
     _sqlAda = new SqlDataAdapter("select name,old from zyzhang",_con);
     _ds = new DataSet();
    _sqlAda.Fill(_ds,"zyzhang");
    if(this.textBox1.DataBindings.Count==0)
    {
    this.textBox1.DataBindings.Add("Text",_ds,"zyzhang.name");
    }
      

  5.   

    谢谢,我已照改了,Form_load中写了如下代码,请注意红色那行,zcm是一个Textbox的名,该Form一启动,正确地执行了各框绑定,如今问题是,我在zcm这个框中输入另一个数比如121212,想点下按钮就用121212用户的数据填弃各框,这个按钮的代码我也写了,但是不工作,按钮的代码在下面附上。
    Form_load代码如下:
            private void Form1_Load(object sender, EventArgs e)
            {
                zcm.Text = "131313";
                Myconnection = "server=.;database=shui;uid=sa;pwd=nevertell;";
                //string sql = "select * from yhb";            //string sql = "select * from yhb where zcm='" + zcm.Text.Trim() + "'";
                sql = "select a.qm,a.qh,a.bh,a.ph,a.zcm,a.yhm,a.des,a.zs,a.dz,a.sj,b.sl,b.je,a.zt from yhb a,v_qianyubiao b where a.zcm=b.zcm and a.zcm='" + zcm.Text.Trim() + "'";            Myconn = new SqlConnection(Myconnection);
                Myconn.Open();
                STcmd = new SqlCommand(sql, Myconn);
                da = new SqlDataAdapter(sql, Myconn);
                dt = new DataSet();
                da.Fill(dt, "tang");
                this.dataGridView1.DataSource = dt.Tables[0];
                yhm.DataBindings.Add("Text", dt, "tang.yhm");
                dz.DataBindings.Add("Text", dt, "tang.dz");
                qh.DataBindings.Add("Text", dt, "tang.qh");
                bh.DataBindings.Add("Text", dt, "tang.bh");
                ph.DataBindings.Add("Text", dt, "tang.ph");
                sj.DataBindings.Add("Text", dt, "tang.sj");
                zs.DataBindings.Add("Text", dt, "tang.zs");
                sl.DataBindings.Add("Text", dt, "tang.sl");
                je.DataBindings.Add("Text", dt, "tang.je");
                zt.DataBindings.Add("Text", dt, "tang.zt");
            }
    按钮中的代码如下:
            private void button4_Click_1(object sender, EventArgs e)
            {
                sql = "select a.qm,a.qh,a.bh,a.ph,a.zcm,a.yhm,a.des,a.zs,a.dz,a.sj,b.sl,b.je,a.zt from yhb a,v_qianyubiao b where a.zcm=b.zcm and a.zcm='" + zcm.Text.Trim() + "'";
                da.Fill(dt,"tang");
                yhm.Refresh();
                dz.Refresh();
                qh.Refresh();
                bh.Refresh();
            }
      

  6.   

    我把按钮中的代码改成了下面这样,为什么第一次给zcm值(zcm是一个textbox),点下按钮,数据都绑定到了各框,给zcm改了个值在点按钮,各框内容却不变。
            private void button4_Click_1(object sender, EventArgs e)
            {
                string Myconnection = "server=.;database=shui;uid=sa;pwd=nevertell;";
                string sql = "select a.qm,a.qh,a.bh,a.ph,a.zcm,a.yhm,a.des,a.zs,a.dz,a.sj,b.sl,b.je,a.zt from yhb a,v_qianyubiao b where a.zcm=b.zcm and a.zcm='" + zcm.Text.Trim() + "'";
                SqlConnection Myconn = new SqlConnection(Myconnection);
                Myconn.Open();
                SqlCommand STcmd = new SqlCommand(sql, Myconn);
                SqlDataAdapter da = new SqlDataAdapter(sql, Myconn);
                DataSet dt = new DataSet();
                da.Fill(dt, "tang");
                this.dataGridView1.DataSource = dt.Tables[0];
                if (this.yhm.DataBindings.Count == 0)
                { yhm.DataBindings.Add("Text", dt, "tang.yhm"); }
                if (this.dz.DataBindings.Count == 0)
                { dz.DataBindings.Add("Text", dt, "tang.dz"); }
                if (this.qh.DataBindings.Count == 0)
                { qh.DataBindings.Add("Text", dt, "tang.qh"); }
                if (this.bh.DataBindings.Count == 0)
                { bh.DataBindings.Add("Text", dt, "tang.bh"); }
                if (this.ph.DataBindings.Count == 0)
                { ph.DataBindings.Add("Text", dt, "tang.ph"); }
                if (this.sj.DataBindings.Count == 0)
                { sj.DataBindings.Add("Text", dt, "tang.sj"); }
                if (this.zs.DataBindings.Count == 0)
                { zs.DataBindings.Add("Text", dt, "tang.zs"); }
                if (this.sl.DataBindings.Count == 0)
                { sl.DataBindings.Add("Text", dt, "tang.sl"); }
                if (this.je.DataBindings.Count == 0)
                { je.DataBindings.Add("Text", dt, "tang.je"); }
                if (this.zt.DataBindings.Count == 0)
                { zt.DataBindings.Add("Text", dt, "tang.zt"); }
            }
      

  7.   

    yhm.DataBindings.clear();
    yhm.DataBindings.Add("Text", dt, "tang.yhm"); 
      

  8.   

    yhm.DataBindings.clear(); 根本不能清除绑定
      

  9.   

    我不知道你们为什么说10楼可以  根本没有clear那个方法啊!
      

  10.   

    我查了下 还是需要CurrentChanged 事件