代码之家  ›  专栏  ›  技术社区  ›  Gad

直接更新我的表的datagridviewcomboboxcolumns

  •  0
  • Gad  · 技术社区  · 16 年前

    假设我有一个Sqlite数据库,其中有两个表:Items和Sectors:

    项目 :

    id_items : INTEGER PRIMARY KEY
    name_item : VARCHAR(...)
    id_sector : INTEGER
    

    :

    id_sector : INTEGER PRIMARY KEY
    name_sector : VARCHAR(...)
    

    项目

    因此,在我的Winforms CustomControl中,我拥有load()方法中发生的所有数据加载和绑定:

    colSector.DataSource = m_dataContext.SectorTable;
    colSector.DisplayMember = "name_sector";
    colSector.ValueMember = "id_sector";
    ItemsGrid.DataSource = new DataView(m_dataContext.ItemsTable);
    

    我的dataview的组合框很好地加载了来自 部门 桌子

    我现在想在我的表格上添加一个按钮,允许创建一个新的部门:

    我创建了一个txtbox(txtNewSector)和一个触发创建的按钮:

        private void btnAddNewSector_Click(object sender, EventArgs e)
        {
            // Add new sector to db
            m_dataContext.AddNewSector(newSectorName);
    
            // refresh dataview so that comboboxes are updated with the new entry
            ???
        }
    

    我希望编辑使问题更清楚,请告知。。。。

    顺致敬意,

    2 回复  |  直到 16 年前
        1
  •  1
  •   Jacob Seleznev    16 年前

    而不是

    ???
    

    添加

    ItemsGrid.DataSource = new DataView(m_dataContext.ItemsTable);
    
        2
  •  0
  •   priyanka.sarkar    16 年前

    你可以使用 timer 为此。它将在一定的时间间隔后完成任务。

    Timer in C#

    你会发现使用它的想法。

    private DataTable LoadData()
    {
      DataTable  dt  = LoadDatabaseData();
    
      return dt;
    }
    
    private void timer1_Tick(object sender, System.EventArgs e)
    {
    
       myDataGrid.DataSource = LoadData();
    
       myDataGrid.Databind();
    
             or 
    
      your combo box's datasource what ever.
    
    }
    

    注意-您使用的是SQLite,除了它是一个数据库之外,我对它一无所知。我只向您展示了如何调用作为网格数据源的函数,并且在每1秒(我指的是您指定的时间间隔)之后,数据将被刷新。

    希望这有帮助。