在运行一次 控件的.DataBind() 就可以了

解决方案 »

  1.   

    michael556cdj:你说的是那个控件?是说dataGridView吗?他没有这个DataBind()方法啊?
      

  2.   

    private   void   frm_Load(object   sender,   EventArgs   e) 

    setPublicInfo(); 
    }   能显示出来不?
    private   void   btn_Click(object   sender,   EventArgs   e) 

    setPublicInfo(); 
    }   在显示???
      

  3.   

    初始化的时候,能显示,
    private       void       btn_Click(object       sender,       EventArgs       e)   
    {   
    setPublicInfo();   
    }       在显示???
    能显示初始化时的数据,但是没有更新最新数据
      

  4.   

    dt改掉了,我可以确定,button单击事件时,取道的是新的 dt,
    但是赋给DataGridViewComboBoxColumn,他没有改
      

  5.   

    dt是不是动态的DATASET啊,还是公共变量,还是固定的DATASET
      

  6.   

    如果是手动添加的dataset,数据库更新后,它不会更新的
      

  7.   

    我通过方法可以得到更新后的dataTable(dt),然后再赋给DataGridViewComboBoxColumn
    重新运行一下这个函数
    private   void   setPublicInfo() 

    //dt是得到的数据表 
    this.cTime_sect.DataSource   =   dt; 
    this.cTime_sect.DisplayMember   =   "name"; 
    this.cTime_sect.ValueMember   =   "id"; 

    问题是,界面上数据没有改
      

  8.   

    按常例来说,datatable属于数据表,就更数据库内的表一样,虽然是动态的。你看看你在更新数据表后,有没有用sqldataapdater重新填充dt。数据库的更新与datatable不同步的。-------------------------------------------------------------
    搞不清你的DataTable的数据是来自SQL数据库内的表查询得到的,还是没有建数据库,只是个临时存储表你可以把代码发上来,让大家帮你测试一下!
      

  9.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using RinpakCommon;
    using Rp_guset_stat;namespace Rp_guset_stat
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            GuestSql guestSql = new GuestSql();
            private void button1_Click(object sender, EventArgs e)
            {            DataTable dt = (DataTable)this.dataGridView1.DataSource;
                try
                {
                    if (dt == null || dt.Rows.Count == 0)
                    {
                        string sql = "select id,time_sect from Rp_guest_info where 1=2";
                        dt = PublicClass.OpenTable(sql);
                    }
                    //插入一行
                    DataRow dr = dt.NewRow();
                    dr.BeginEdit();
                    dr.EndEdit();
                    dt.Rows.Add(dr);
                    this.dataGridView1.DataSource = dt;
                    DataTable dt1 = guestSql.getParaAggregate("4");
                    this.cTime_sect.DataSource = dt1;
                    this.cTime_sect.DisplayMember = "name";
                    this.cTime_sect.ValueMember = "id";
                    
                }
                catch
                {
                    MessageBox.Show(e.ToString());
                }
            }        private void Form1_Load(object sender, EventArgs e)
            {
                this.cTime_sect.DataSource = guestSql.getParaAggregate("10");
                this.cTime_sect.DisplayMember = "name";
                this.cTime_sect.ValueMember = "id";
            }
        }
    }
      

  10.   

    cTime_sect是一个 DataGridViewComboBoxColumn 
      

  11.   

    private void setPublicInfo()
    {
        DataTable candTable = this.cTime_sect.DataSource as DataTable;
        //dt是得到的数据表
        if (candTable == null)
        { 
            this.cTime_sect.DataSource = dt;
            this.cTime_sect.DisplayMember = "name";
            this.cTime_sect.ValueMember = "id";
        }
        else
        {
            candTable.Rows.Clear();
            // 把dt的数据放入candTable
            .....
         }
    }再给dataGridView加上DataError事件
    事件里什么都不用写
    private void dataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
    {}