C#-使用空值填充网格

C#-使用空值填充网格,c#,sql,database,C#,Sql,Database,我试图用Access数据库中的值填充网格,但没有成功 当我从网格中单击按钮时,我得到null值。问题是什么?有人能给我一个想法/建议吗 我的代码是: private void btnComenzi_Click(object sender, EventArgs e) { //string owner = cboAgenti.SelectedValue.ToString(); string AgentAsig = ""; //string Da

我试图用Access数据库中的值填充网格,但没有成功

当我从网格中单击按钮时,我得到
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;
    }
谢谢大家!!
我已经移动了一些代码行,最后,它的作品。我刷新网格没有成功,但我一直在尝试。

您是否在代码中放置了断点。。它是否进入while循环。。?同样,在
dgvComenzi.DataSource=dt
之后,需要将dt绑定到网格调用
dgvComenzi.Refresh()
;另外,您只需在While循环中执行此操作,
While(myReader1.Read())
我个人会将查询返回到
Fill()
数据表,并将数据表绑定到数据源。@Iulia,确保您在dgv中设置了列,以便它们与此数据匹配。这可以在设计器或代码中完成。