Ir para conteúdo
Fórum Script Brasil
  • 0

dataGridView


Henrique Neto

Pergunta

Eu obti um resultado SQL, com uma consulta realizada... eu gostaria que os resultados da consulta, fossem colocados em cada coluna criada MANUALMENTE por mim no datagridview, e não que criasse umas colunas a mais automaticamente, como esta sendo realizado....

private void pesquisaCidade()
        {
            comand = new MySqlCommand("select idcidade, cidade, uf from cidade where cidade like '%" + txtCidade.Text + "%'", db.mConn);
                    
            data = new MySqlDataAdapter(comand);
            ds = new DataSet();
            data.Fill(ds, "cidade");
            dataGridView1.DataSource = ds.Tables["cidade"];

           }

Segue acima o codigo que estou tendo para obter os resultados do SQL,

Com esse codigo ele cria colunas amais, e minha intencao não e essa, qro que o resultado seja colocado nas colunas que criei.

Espero q tenho sido bem especificado meu problema.

grato;

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Você tem duas opções: configurar a grid, depois de carregada, para não exibir essas colunas indesejáveis (dataGridView1.Columns[indice].Visible = False;) ou adicionar manualmente.

O problema de adicionar manualmente é que vai ficar trabalhoso. Você terá que criar cada coluna, configurar o tipo, adicionar ao DataGridView, depois ir de linha em linha no seu ds.Tables["cidade"] e atribuir os campos às colunas correspondentes.

Segue um exemplo simples:

dataGridView1.Columns.Add("Cidade", "Cidade");
dataGridView1.Columns["Cidade"].Width = 120;

dataGridView1.Columns.Add("Estado", "Estado");
dataGridView1.Columns["Estado"].Width = 120;

dataGridView1.Columns.Add("Regiao", "Região");
dataGridView1.Columns["Região"].Width = 120;

for (int contador = 0; contador <= (ds.Tables["cidade"].Rows.Count - 1); contador++)
{
    DataGridViewRow linha = new DataGridViewRow();

    DataGridViewTextBoxCell colunaCidade = new DataGridViewTextBoxCell();
    colunaCidade.Value = ds.Tables["cidade"].Rows[contador]["Cidade"].ToString();
    linha.Cells.Add(colunaCidade);

    DataGridViewTextBoxCell colunaEstado = new DataGridViewTextBoxCell();
    colunaEstado.Value = ds.Tables["cidade"].Rows[contador]["Estado"].ToString();
    linha.Cells.Add(colunaCidade);

    DataGridViewTextBoxCell colunaRegiao = new DataGridViewTextBoxCell();
    colunaRegiao.Value = ds.Tables["cidade"].Rows[contador]["Regiao"].ToString();
    linha.Cells.Add(colunaRegiao);

    dataGridView1.Rows.Add(linha);
}

Link para o comentário
Compartilhar em outros sites

  • 0

Com esse seu codigo acima, eu tentei fazer do mesmo modo no entando aparece um error no final onde não me da entender nada ...

ERROR:

Não é possível adicionar linhas programaticamente à coleção de linhas de DataGridView quando o controle é limitado por dados.

Na ultima linha

dataGridView1.Rows.Add(linha);

Meu codigo ficou assim:

dataGridView1.Columns.Add("Cidade", "Cidade");
            dataGridView1.Columns["Cidade"].Width = 120;

            dataGridView1.Columns.Add("UF", "UF");
            dataGridView1.Columns["UF"].Width = 120;

            dataGridView1.Columns.Add("Codigo", "Codigo");
            dataGridView1.Columns["Codigo"].Width = 120;

            for (int contador = 0; contador <= (ds.Tables["cidade"].Rows.Count - 1); contador++)
            {
                DataGridViewRow linha = new DataGridViewRow();

                DataGridViewTextBoxCell colunaCidade = new DataGridViewTextBoxCell();
                colunaCidade.Value = ds.Tables["cidade"].Rows[contador]["cidade"].ToString();
                linha.Cells.Add(colunaCidade);

                DataGridViewTextBoxCell colunaEstado = new DataGridViewTextBoxCell();
                colunaEstado.Value = ds.Tables["cidade"].Rows[contador]["uf"].ToString();
                linha.Cells.Add(colunaEstado);

                DataGridViewTextBoxCell colunaRegiao = new DataGridViewTextBoxCell();
                colunaRegiao.Value = ds.Tables["cidade"].Rows[contador]["idcidade"].ToString();
                linha.Cells.Add(colunaRegiao);

                dataGridView1.Rows.Add(linha);
            }

E não entendi como impedir, de não criar colunas AUTOMATICAMENTE...

grato;

Editado por Henrique Neto
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, me ajudem em uma coisa, estou comecando agora com C#, e estou tentando preencher o dataGridView assim como o exemplo acima, mas logo de cara me aparece um erro, e não é a primeira vez que me aparece ele, mas nunca consegui resolver...

Logo de cara nesta primeira linha aparece o erro: "a get or set accessor expected"

dataGridView1.Columns.Add("Cidade", "Cidade");

Dai eu fiz isso:

private string valor = string.empty;

private int Teste

{

get {return valor;}

set {valor = value;}

}

mas não sei como usar para parar de aparecer este erro...

Alguém poderia me ajudar?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpem por estar ressuscitando esse tópico, porém para não ter que abrir outro com quase o mesmo objetivo, vou postar aqui mesmo.

Meu problema está no desktop, mas como estamos lidando com o C#, acredito que talvez eu possa resolver. Tenho o seguinte código:

conexao.Open();
            MySqlCommand query = new MySqlCommand("SELECT * FROM tabela LIMIT 10", conexao);
            MySqlDataAdapter adapter = new MySqlDataAdapter(query);
            DataTable data = new DataTable();
            adapter.Fill(data);
            dataGridView1.DataSource = data;

os resultados aparecem corretamente, porém só aparecem se eu clicar no datagrid. Tem como aparecer automaticamente assim que abre a página?

Obrigado!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...