-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;
}
你有沒有在代碼中放置斷點..它是否進入while循環..?在你的'dgvComenzi.DataSource = dt'之後,你需要將dt綁定到grid調用'dgvComenzi.Refresh()';你也只需要在你的While循環'while(myReader1.Read())'中做到這一點,我會返回查詢到'Fill()'數據表,並將數據表綁定到DataSource .. – MethodMan
@Iulia,確保你在dgv中設置了列,以便它們匹配這些數據。這可以在設計者或代碼中完成。 – derloopkat