2017-08-02 56 views
0

我有一個datagridview displayng產品表,一切正常工作,插入,更新和刪除。但dgv只會更新,如果我點擊它。我怎樣才能使它在加載時更新,並且在點擊插入,刪除和更新按鈕後?如何在插入和加載後刷新datagridview?

DGV進入方法:

// this is where i call the select method in the main form 
private void dataGridView1_Enter(object sender, EventArgs e) 
{ 
    // sisDBADM is the class that holds all the sql querys 
    sisDBADM obj = new sisDBADM(); 
    dataGridView1.DataSource = obj.ListaGrid(); 
} 

public DataTable ListaGrid() 
{ 
    vsql = "SELECT NOME , PRECO FROM menu"; 
    NpgsqlCommand objcmd = null; 

    if (this.conectar()) 
    {  
     try 
     { 
      objcmd = new NpgsqlCommand(vsql, con); 
      NpgsqlDataAdapter adp = new NpgsqlDataAdapter(objcmd); 
      DataTable dt = new DataTable(); 
      adp.Fill(dt); 

      return dt; 
     } 
     catch (NpgsqlException e) 
     { 
      throw e; 
     } 
     finally 
     { 
      this.desconectar(); 
     } 
    } 
    else 
    { 
     return null; 
    } 
} 

插入方法:

public bool Insert(ArrayList p_arrInsert) 
{ 
    vsql = "INSERT INTO menu(nome,preco)" + "VALUES(@nome,@preco)"; 
    NpgsqlCommand objcmd = null; 

    // conection try/catch adding the parameters 
    if (this.conectar()) 
    { 
     objcmd = new NpgsqlCommand(vsql, con); 
     objcmd.Parameters.Add(new NpgsqlParameter("@nome", p_arrInsert[0])); 
     objcmd.Parameters.Add(new NpgsqlParameter("@preco", p_arrInsert[1])); 

     objcmd.ExecuteNonQuery(); 
     return true; 
    }  
    else 
    { 
     return false; 
    } 
} 
+2

一些偏離主題的指針:在代碼中使用自動格式化,如果在'else'分支中只有(或僅接近)'return'語句的'if' /'else'語句,則還原條件從'如果(條件){}其他{返回; }'if'(!condition){return ; } ;'。這可以大大減少縮進並提高代碼的可讀性。 – MarthyM

回答

1

刪除dataGridView1_Enter方法和插入調用ListaGrid方法,刪除和更新按鈕單擊事件。