如何在输入新数据后刷新datagridview中的数据

时间:2017-02-20 15:33:48

标签: c# database sqlite

如何在这里刷新我的datagridview我的代码在datagridview中查看我的数据,但每次输入新数据时我都要重新打开我的程序以查看新数据

 using (IDbConnection dbconnection = new SQLiteConnection(conn))
        {
            dbconnection.Open();

            SQLiteDataAdapter dataadapter = new SQLiteDataAdapter("SELECT * FROM tbl_Sample",conn);
            DataSet ds = new System.Data.DataSet();

            dataadapter.Fill(ds,"Info");
            dataGridView1.DataSource = ds.Tables[0];

        }

2 个答案:

答案 0 :(得分:0)

如果您使用DataSetDataTable作为DataGridView的数据源,可以尝试以下方法:

private void LoadDataToDgv()
{
    using (IDbConnection dbconnection = new SQLiteConnection(conn))
    {
        dbconnection.Open();

        SQLiteDataAdapter dataadapter = new SQLiteDataAdapter("SELECT * FROM tbl_Sample",conn);
        DataSet ds = new System.Data.DataSet();

        dataadapter.Fill(ds,"Info");
        dataGridView1.DataSource = ds.Tables[0];

    }
}

然后在将新数据添加到表后,获取新数据集并使用新行重新加载网格:

//Code to add new data to Sql Table
  LoadDataToDgv();

但是我建议你为绑定到网格的项目类型创建一个Class(如果你还没有创建一个),并使用BindingList来做同样的事情。 This问题很好地描述了如何使用它将它绑定为DataGridViews的源。

答案 1 :(得分:0)

每当我将新数据放入数据库时​​,我都会使用刷新功能,因此datagridview将刷新我输入的每个新数据

#include<stdio.h>
#include<unistd.h>
#include<time.h>

void handler(int){
    const char msg[] = "handler\n";
    write(0, msg, sizeof(msg));
}

extern "C" void restorer();
asm volatile("restorer:mov $15,%rax\nsyscall");

struct kernel_sigaction {
        void (*k_sa_handler) (int);
        unsigned long sa_flags;
        void (*sa_restorer) (void);
        unsigned long sa_mask;
};

struct kernel_sigaction act{handler};
timespec ts{10,0};

int main(){
 act.sa_flags=0x04000000;
 act.sa_restorer=&restorer;

 asm volatile("\
 mov $13,%%rax\n\
 mov %0,%%rdi\n\
 mov %1,%%rsi\n\
 mov %2,%%rdx\n\
 mov $8,%%r10\n\
 syscall\n\
 "::"i"(7),"p"(&act),"p"(0):"rax","rcx", "rdi","rsi","rdx","r8", "r9", "r10", "r11");

 nanosleep(&ts,0);
}