Boa noite Pessoal,
Estou com um problema, talvez simples pra vcs mas que está me tirando a paciência.
É o seguinte, estou construindo um WindowsForm, onde coloquei um textbox, um combobox e um datagridview;
O mesmo está se conectando com um banco ACCESS10, via connectionstring.
Problema: O DataGridView não exibe o primeiro registro no resultado da consulta, porém já constatei que ele está lá!
Fiz um teste de filtrar o resultado para exibir apenas um registro, mas daí o Grid fica vazio, mas a consulta retorna um registro conforme esperado.
Trecho de código constando a consulta que está sendo executada:
private void button1_Click(object sender, EventArgs e)
OleDbConnection conexaoDB = new OleDbConnection();
conexaoDB.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = '|DataDirectory|\GxxxxSS_DBM7.accdb'; Persist Security Info=True";
conexaoDB.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT tipousuario.idTipoUsuario, tipousuario.nomeTipoUsuario, " +
"status.nomestatus, tipousuario.dataregistro FROM status INNER JOIN " +
"tipousuario ON status.idstatus = tipousuario.idstatus " +
"WHERE(((tipousuario.nomeTipoUsuario) Like '%" + txNomeTipoUsuario.Text + "%' ));";
cmd.CommandType = CommandType.Text;
cmd.Connection = conexaoDB;
OleDbDataReader OleDataR_TipoUsuario;
OleDataR_TipoUsuario = cmd.ExecuteReader();
OleDataR_TipoUsuario.Read();
///Preenchendo o textbox(txNomeTipoUsuario) com a primeira linha do resultado da consulta:
txNomeTipoUsuario.Text = OleDataR_TipoUsuario.GetString(1); ///Ok esse funcionou!
//Agora populando o DataGridView (dgvTipoUsuario):
DataTable dtTipoUsuario = new DataTable();
dtTipoUsuario.Load(OleDataR_TipoUsuario);
dgvTipoUsuario.DataSource = dtTipoUsuario;
dgvTipoUsuario.Refresh(); /// Neste ponto já não funcionou, de três registros ele só apresentou os dois últimos!.
conexaoDB.Close();
//Agora populando o Combobox(cbStatus) em:
private void cbStatus_SelectedIndexChanged(object sender, EventArgs e)
conexaoDB.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT status.idstatus, status.nomestatus FROM status;";
cmd.CommandType = CommandType.Text;
cmd.Connection = conexaoDB;
OleDbDataReader OleDataR_Status;
OleDataR_Status = cmd.ExecuteReader();
OleDataR_Status.Read();
DataTable dtStatus = new DataTable();
dtStatus.Load(OleDataR_Status);
DataView dtvStatus = new DataView(dtStatus, "", "nomestatus", DataViewRowState.OriginalRows);
cbStatus.DataSource = dtvStatus;
///Também não funcionou, de três registros ele só apresentou os dois últimos!.
cbStatus.DisplayMember = "nomestatus";
cbStatus.ValueMember = "idstatus";
conexaoDB.Close();
Será que existe alguma propriedade do Grid que não está permitindo exibir a primeira linha dos resultados??
Obs.: Mesmo ocultando o cabeçalho do Grid, o problema continua!
Desde já agradeço!!