Jump to content
Fórum Script Brasil
  • 0

dataGridView


Henrique Neto

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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;

Edited by Henrique Neto
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...