private void drvPatient_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            txtPatientID.DataBindings.Add("Text", ds.Tables["Patient"], "patientID");
                    }
提示 无法绑定到 DataSource 的属性或列 patientID。txtPatientID文本框 Text这个参数是干吗的? ds.Tables["Patient"]这个没有问题,我drvPatient.DataSource = ds.Tables["Patient"];这样不会出错
patientID是我数据里的列名我想要的效果是用户点Datagrid那一行 哪一行数据就自动填到我那文本框上

解决方案 »

  1.   


    txtPatientID.DataBindings.Add("Text", ds, "Patient.patientID");看看这样能不能成功绑定。
      

  2.   

    前面的"Text"是绑定到控件的属性名,TextBox一般是绑定到Text。
      

  3.   

    提示还是“无法绑定到 DataSource 的属性或列 patientID。”
      

  4.   

     "patientID"是我表里面的列名对吗?
    用这个方法的时候 一般都在什么时候开始邦?
      

  5.   

    最好还要检查一下对应的DataTable中是否确实存在该列。
      

  6.   

    我是不是应该在界面启动时就绑定?而且只能绑定一次?
    如果只能绑定一次 我怎样才能让用户点选哪一行 哪一行的值就动态复制到textbox里面呢
      

  7.   


    private void Form2_Load(object sender, System.EventArgs e)
    {
    SqlConnection cn=new SqlConnection("server=localhost;uid=sa;pwd=;database=pubs");
    SqlDataAdapter ad=new SqlDataAdapter("select * from authors",cn);
    myTable=new DataTable();
    ad.Fill(myTable);
    textBox1.DataBindings.Add("Text",myTable,"au_id");
    textBox2.DataBindings.Add("Text",myTable,"au_fname");
    textBox3.DataBindings.Add("Text",myTable,"au_lname");
    textBox4.DataBindings.Add("Text",myTable,"phone");
    textBox5.DataBindings.Add("Text",myTable,"address");
    textBox6.DataBindings.Add("Text",myTable,"city");
    textBox7.DataBindings.Add("Text",myTable,"state");
    textBox8.DataBindings.Add("Text",myTable,"zip"); Binding b=checkBox1.DataBindings.Add("Checked",myTable,"contract");
    b.Parse+=new ConvertEventHandler(b_Parse);
    b.Format+=new ConvertEventHandler(b_Format);
    myCurrencyManager = (CurrencyManager)this.BindingContext[myTable];
    myCurrencyManager.Position = 0;
    dataGrid1.DataSource=myTable;
                    }给你看看我曾经写过的一个例子。
      

  8.   

    绑定的时机应该看你自己的需要,只要保证在读完数据之后再进行绑定操作即可,一个数据源可绑定到多个控件,但一般不要这样做。
    如我上面的例子,myTable同时绑定到了DataGrid,各个字段也绑定到了相应的TextBox,这样做了以后,可以实现你想要的效果。
      

  9.   

                txtPatientID.DataBindings.Add("Text", ds.Tables["Patient"], "医疗证号");
                txtPatientName.DataBindings.Add("Text", ds.Tables["Patient"], "病人姓名");
                radMale.DataBindings.Add("Checked", ds.Tables["Patient"], "病人性别");
                radFemale.DataBindings.Add("Checked", ds.Tables["Patient"], "病人性别");
    那我性别那块怎么绑啊。。是一个RadionButton 而且库里面是个布尔值
      

  10.   

    两个RadioButton?这个比较头疼,变通一下,换成一个CheckBox,如何?
      

  11.   

    汗 男女就应该用radionbutton那 对了 pictrueBox也不能用text属性取 绑定上没问题,但是读出来的数据(路径)在pictrueBox不显示。。
      

  12.   

    用RadioButton比较麻烦,一个字段绑定到两个控件,这种情况我还真是没有处理过,不能给你什么帮助。
    PictureBox的Text属性应该没有什么意义,我使用PictureBox只是它的Image属性。
      

  13.   

     private void DataToText()
            {
                if (LbindingSource.DataSource == null)
                    return;
                this.txtjh.DataBindings.Add("Text", LbindingSource, "jh", false);
                this.txttgmc.DataBindings.Add("Text", LbindingSource, "tgmc", false);
                this.txtsccj.DataBindings.Add("Text", LbindingSource, "sccj", false);
                this.txtgbyl.DataBindings.Add("Text", LbindingSource, "gbyl", false);
                this.txtfjgxh.DataBindings.Add("Text", LbindingSource, "fjgxh", false);
                this.txtfjgnj.DataBindings.Add("Text", LbindingSource, "fjgnj", false);
                this.txtdkyl.DataBindings.Add("Text", LbindingSource, "dkyl", false);
                this.txtbz.DataBindings.Add("Text", LbindingSource, "bz", false);
                this.txtafjs.DataBindings.Add("Text", LbindingSource, "afjs", false);
            
            }
    看看这样行不行