2017-06-20 10 views
-1

私はにグリッドを設定しようとしていますにはのアクセスの値が入ります。null値のポピュレートグリッド

グリッドからボタンをクリックすると、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をグリッド呼び出し' dgvComenzi.Refresh() 'にバインドする必要があります。また、あなたのWhileループ 'while(myReader1.Read())'でこれを行う必要があります。個人的には、データテーブルを 'Fill()'に返し、データテーブルをDataSourceにバインドします。 – MethodMan

+0

@Iulia、必ず確認してくださいこのデータと一致するようにdgvの列を設定します。これはデザイナーやコード内で行うことができます。 – derloopkat

答えて

0

ありがとうございました! 私はコードでいくつかの行を移動し、ついには動作します。私はRefreshingグリッドで成功しませんでしたが、私は努力し続けています。