2017-06-20 38 views
-1

我想填充網格訪問數據庫的值,但沒有成功。C# - 填充空值的網格

當我點擊從網格的按鈕,我得到null值。問題是哪個?有人能給我一個想法/建議嗎?

我的代碼是:

private void btnComenzi_Click(object sender, EventArgs e) 
    { 
     //string owner = cboAgenti.SelectedValue.ToString(); 
     string AgentAsig = ""; 
     //string Data = ""; 
     string Client = ""; 
     //int Client = 0; 
     //int NrCom = 0; 
     string NrCom = ""; 
     double ValCom = 0; 
     double Discount = 0; 
     double ValFinala = 0; 
     string Status = ""; 
     double Volum = 0; 
     DateTime data = new DateTime(); 

     OleDbConnection conDataBase = RealizeazaConexiune(); 
     //select 
     OleDbCommand selectCommand = new OleDbCommand(); 
     selectCommand.Connection = conDataBase; 
     string query1 = "SELECT Cod_Client, Cod_Comanda, Valoare_Comanda, Discount_Comanda, Valoare_Finala, Owner, Status_Comanda, Data_Comanda FROM Comenzi WHERE Owner = '" + cboAgenti.SelectedValue + "'"; 
     selectCommand.CommandText = query1; 
     // OleDbDataReader myReader1 = selectCommand.ExecuteReader(); 

     using (OleDbDataReader myReader1 = selectCommand.ExecuteReader()) 
     { 
      while (myReader1 != null && myReader1.Read()) 
      { 
       // Data = myReader1[0].ToString(); Client = myReader1[1].ToString(); 
       Client = myReader1[0].ToString(); 
       NrCom = myReader1[1].ToString(); 
       ValCom = double.Parse(myReader1[2].ToString()); 
       Discount = double.Parse(myReader1[3].ToString()); 
       ValFinala = double.Parse(myReader1[4].ToString()); 
       AgentAsig = myReader1[5].ToString(); 
       Status = myReader1[6].ToString(); 
       data = DateTime.Parse(myReader1[7].ToString()); 
       Volum = Volum + ValFinala; 
      } 
     } 

     DataRow dr1 = dt.NewRow(); 
     // dr1[0] = Data; 
     dr1[0] = Client; 
     dr1[1] = NrCom; 
     dr1[2] = ValCom; 
     dr1[3] = Discount; 
     dr1[4] = ValFinala; 
     dr1[5] = AgentAsig; 
     dr1[6] = Status; 
     dr1[7] = data; 
     dt.Rows.Add(dr1); 
     dgvComenzi.DataSource = dt; 
    } 
+0

你有沒有在代碼中放置斷點..它是否進入while循環..?在你的'dgvComenzi.DataSource = dt'之後,你需要將dt綁定到grid調用'dgvComenzi.Refresh()';你也只需要在你的While循環'while(myReader1.Read())'中做到這一點,我會返回查詢到'Fill()'數據表,並將數據表綁定到DataSource .. – MethodMan

+0

@Iulia,確保你在dgv中設置了列,以便它們匹配這些數據。這可以在設計者或代碼中完成。 – derloopkat

回答

0

謝謝! 我已經移動了一些代碼行,最後,它的工作。我沒有成功刷新網格,但我一直在嘗試。