none
求救:ComboBOX使用BindingSource绑定更新数据源的问题 RRS feed

  • 问题

  • 我使用bindingSource绑定控件,代码如下:

    dataset ds=new dataset();

    da.Fill(da,"post");

    BindingSource bindsource=new BindingSource(ds,"post");

    this.combobox1.DataBings.Add("Text",bindsource,"Department");

    ....

    我有两个问题需要请教:

    一、ComboBox下拉列表弹出窗体的问题

         1.ComboBox的下拉列表,使用DropDown弹出窗体选择文本,当使用到combobox控件上时,使用dataBings.Add(”Text“,bindsource,”Department“)绑定,无法更新到数据库中。

         2.直接在ComboBox的Text上填写数据就可以提示有修改并成功更新到了数据源中。

         3.请问这是怎么回事?

    二、我使用左联接的方式多表查询,可以使用BindingSource进行绑定控件吗?我应该怎么做呢?

    2014年2月23日 7:52

答案

全部回复

  • 【第一问】

    Combobox本身就是一个数据源绑定控件,你应该设置其DataSource,DisplayMember和ValueMember属性,这样下拉列表出现的内容都是DisplayMember绑定的数值,而选择某个真正会被更新到数据库的是ValueMember的内容绑定;同时你应该设定Combobo的SelectedValue而不是Text作为绑定数值:

    dataBings.Add("SelectedValue",bindsource,"Department");

    【第二问】

    当然可以,你把结果Fill到一个Table中,然后用BindingSource。


    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2014年2月23日 9:12
    版主
  • 感谢您的指点。

    1.我使用ComboBox的DropDown事件,弹出的窗体是TreeView的部门名称,获取到部门名称后由ComboBox.Text获取,我想也许是这里有问题。但是我修改了后仍然无法提示数据源有修改。

    2.我直接在ComboBox的Text属性中直接填写数据就会提示数据有修改,我想可能是点击下拉列表和Text可能是两个数据源,但是我现在还一无所获,希望得到您的指点。

    3.我用左联接方向查询到的数据,当我用BindingSource时,需要指一个表名,但是我联接了好多张表,不知道填写哪个表合适。不知道是不是父、子、孙的方式进行bindingsource绑定。

    2014年2月23日 14:22
  • hello,

    ComboBox 要写入数据你得绑定 ValueMember 而非 Text

    当然可以透过BindingSource绑定,利用PositionChanged來进行进阶查询



    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2014年2月23日 14:30
  • 今天折腾了一天,不知道怎么回事竟然触动了ComboBox的SelectedIndexChanged事件,以前在窗体Load时,加裁绑定的combobox不会同时触发selectedindexchanged事件,现在一加载就会触发事件,现在造成所有的combobox都在加载时触发了事件,我应该如何去取消这种一加载就触动的事件呢?
    2014年2月24日 13:42
  • Hello,

    取消SelectedIndexChanged注册

    comboBox.SelectedIndexChanged-=SelectedIndexChanged(...)


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2014年3月6日 6:29
  • Hello,

    取消SelectedIndexChanged注册

    comboBox.SelectedIndexChanged-=SelectedIndexChanged(...)


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    补充:

    如果是匿名事件,请直接删除。因为“匿名”你无法找到函数体本身。

    此外如果你通过面板操作,请切换到“事件”面板后删除绑定的事件。


    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2014年3月7日 7:58
    版主