在windows窗体中有一个comboBox控件与数据表中的某字段已绑定,但在程序运行时这个控件会改变数据表中的数据,(尽管我没有改变这个控件的状态,数据表中的数据也是和它的初始值一样),对表使用GetChanges()方法得到的值非空,以下是我的代码:comboBox控件的Items属性在VS2003的界面中指定,其值为:
 v1
 v2comboBox控件的绑定命令是: comboBox1.DataBindings.Add("SelectedItem",ds,"table1.ver");
ver字段为文本字段测试表是否有变动的代码如下:
    int y=0;
    if (ds.Tables["teble1"].GetChanges()!=null)
        y=ds.Tables["teble1"].GetChanges().Rows.Count ;检查y的值发现在窗口显示过的每条记录都有改变(它们的ver字段其实都没有变),请问如何绑定才能避免这种情况。谢谢!!

解决方案 »

  1.   

    if (ds.Tables["teble1"].GetChanges()!=null)ds.Tables["teble1"].GetChanges()已经执行了改变!
      

  2.   

    能说得更详细点吗?谢谢
    我的检测代码如下,发现只有这个与comboBox绑定的表有改变。
    int y=0;
    for (int x=0;x<ds.Tables.Count;x++)
    {
        if (ds.Tables[x].GetChanges()!=null)
            y+=ds.Tables[x].GetChanges().Rows.Count ;
    }
      

  3.   

    试一下,
    this.ComboBox1.DataSource = myDataTable;//数据表
    this.ComboBox1.DisplayMember = "Name";//字段名
    this.ComboBox1.ValueMember = "userId";//字段名
    设置ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
      

  4.   

    楼上二位的方法我都已经试过了,结果一样,我想问题可能还是这段:
    comboBox1.DataBindings.Add("SelectedItem",ds,"table1.ver");
    不知道comboBox还有其它绑定方法吗?
      

  5.   

    你想的要的是
    ComboBox 的动态刷新吗!
    还是知道 哪个Combobox 更新了呢!
      

  6.   

    我要完成的功能是:在窗体上有一些控件与数据表绑定了,当我进行一系列操作后检查表,如果发现表的记录有改动就执行相应的操作,没有改动就直接退出.
        但是现在的情况是只要是在窗体上显示过的记录其状态都被改变了,如果我显示过了三条记录,那么用ds.Tables["teble1"].GetChanges().Rows.Count 方法得到的值就是3.
        如果取消ComboBox绑定,那一切正常.并且我检查过了,在ComboBox绑定的情况下字段的值是没有变的.只是记录的状态改变了.
        哪位用过ComboBox绑定的大侠帮帮我呀!
      

  7.   

    comboBox1.DataBindings.Add("SelectedItem",ds,"table1.ver");
    这个是没问题的,其他方面你检查一下
      

  8.   

    你绑定到 DataSet.Tables[0].DefaultView试一下。。即comboBox1.DataBindings.Add("SelectedItem",ds.Tables[0].DefaultView,"table1.ver");
      

  9.   

    谢谢,不过用你的方法还是不行
    comboBox1.DataBindings.Add("SelectedItem",ds.Tables[0].DefaultView,"ver")