C# DataGrid não atualiza

28/11/2011

0

Olá amigos,
estou com o seguinte problema:

tenho um formulario de atividades recentes.. os botões adicionar,alterar e excluir estão funcionando corretamente
porém, após efetuar sua ação, o dataGrid não atualiza. É necessário fechar o programa e abrir novamente para atualizar

estou usando Visual Studio 2010 C# + SQL Server. Se alguém poder ajudar fico agradecido!

Também gostaria de saber se é possível ordenar o Form2 para atualizar o dataGrid do Form1, no caso de criar um formulario exclusivamente para adicionar itens...se possível, como faço isso?

segue abaixo meu código do botão alterar que não atualiza o dataGrid:

 private void button2_Click(object sender, EventArgs e)
        {
            {

                try{
                

                    if (tbtitulo.Text != )
                    {

                        SqlConnection conn = new SqlConnection(@Data Source=PHOENIX\SQLEXPRESS;Initial Catalog=Ortifa;Integrated Security=True;Pooling=False);
                        SqlCommand comm = new SqlCommand();
                        comm.Connection = conn;
                        comm.CommandText = UPDATE Lembre SET Titulo =  + tbtitulo.Text + , Data =  + tbdata.Text + , Hora =  + tbhora.Text + WHERE Titulo =  + (tbtitulo.Text) + ;
// UPDATE cadcd set TIPO=-DIVERSOS, TITULO=TESTE1, DESCRICAO=TESTE1 where REGISTRO=007
                        comm.Parameters.AddWithValue(@TITULO, tbtitulo.Text);
                        comm.Parameters.AddWithValue(@DATA, tbdata.Text);
                        comm.Parameters.AddWithValue(@HORA, tbhora.Text);
                        comm.Parameters.AddWithValue(@LOCAL, tblocal.Text);
                        conn.Open();
                        comm.ExecuteNonQuery();
                        conn.Close();
                        MessageBox.Show(Midia alterada com sucesso!);
                    }

                    else
                    {
                        MessageBox.Show(Informe o código da mídia);
                    }

                }

                catch
                {
                    MessageBox.Show(Erro na alteração do cadastro, Mensagem do Sistema,
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

            }


Desde já agradeço pela atenção!
Dyego

Dyego

Responder

Posts

28/11/2011

Dyego

fulano
olá amigos,
estou com o seguinte problema:

tenho um formulario de atividades recentes.. os botões adicionar,alterar e excluir estão funcionando corretamente
porém, após efetuar sua ação, o datagrid não atualiza. é necessário fechar o programa e abrir novamente para atualizar

estou usando visual studio 2010 c# + sql server. se alguém poder ajudar fico agradecido!

também gostaria de saber se é possível ordenar o form2 para atualizar o datagrid do form1, no caso de criar um formulario exclusivamente para adicionar itens...se possível, como faço isso?

segue abaixo meu código do botão alterar que não atualiza o datagrid:


private void button2_click(object sender, eventargs e)
{
{

try{


if (tbtitulo.text != )
{

sqlconnection conn = new sqlconnection(@data source=phoenix\sqlexpress;initial catalog=ortifa;integrated security=true;pooling=false);
sqlcommand comm = new sqlcommand();
comm.connection = conn;
comm.commandtext = update lembre set titulo = + tbtitulo.text + , data = + tbdata.text + , hora = + tbhora.text + where titulo = + (tbtitulo.text) + ;
// update cadcd set tipo=-diversos, titulo=teste1, descricao=teste1 where registro=007
comm.parameters.addwithvalue(@titulo, tbtitulo.text);
comm.parameters.addwithvalue(@data, tbdata.text);
comm.parameters.addwithvalue(@hora, tbhora.text);
comm.parameters.addwithvalue(@local, tblocal.text);
conn.open();
comm.executenonquery();
conn.close();
messagebox.show(midia alterada com sucesso!);
}

else
{
messagebox.show(informe o código da mídia);
}

}

catch
{
messagebox.show(erro na alteração do cadastro, mensagem do sistema,
messageboxbuttons.ok, messageboxicon.warning);
}

}


desde já agradeço pela atenção!
Responder

28/11/2011

Rodrigo Odasaki

Após adicionar o registro, você não pode implementar no mesmo método um outro método para atualizar seu datagrid?
Responder

28/11/2011

Dyego

Opa!
Então Rodrigo, eu tentei usar o data adapter de diversas formas, mas realmente não atualiza..

é necessário fechar o programa e abrir novamente para atualizar o dataGrid...

Eu vi em um tópico uma linha dizendo Grid.DataBind; mas aqui o visual não reconhece este comando, mesmo com todos using relacionados
Agradeço a atenção, e peço desculpas aos moderados pelo post duplo, sou novo no forum..
Responder

28/11/2011

Rodrigo Odasaki

DataBind() você utiliza no ASP.NET para renderizar seu controle.
Responder

28/11/2011

Rodrigo Odasaki

Tente assim:

TableAdapter.Fill(DataSet.Tabela);
Responder

28/11/2011

Dyego

Obrigado Rodrigo!

Testei o código aqui,mas infelizmente não rodou...
ele diz que não tem definição pra tabela entre parenteses, no caso:

ficou assim: lembreTableAdapter.Fill(DataSet.lembre);

a palavra lembre dentro de parenteses sublinhada em vermelho com o seguinte erro:

Error: System.Data.Dataset does not contain a definition for lembre
Responder

28/11/2011

Rodrigo Odasaki

Se possível mostra o método que renderiza o DataGrid
Responder

29/11/2011

Dyego

Olá Rodrigo,
infelizmente sou novo ainda na área de C#, não saberia te dar tal informação
mas o único código que estou usando foi esse que postei, o que mostra no dataGrid é selecionado nele mesmo,sem codificação

ainda não consegui resolver o problema
Responder

01/12/2011

Flavia Santos

Após o método de inserir, alterar ou excluir inclua o código abaixo, alterando o nome do método de pesquisa objPesquisa() e incluindo os parametros necessários:

GridView1.DataSource = objPesquisa();
GridView1.DataBind();

Onde ObjPesquisa() é o método que você já tem criado para popular o grid.


Responder

01/12/2011

Dyego

Não existe a propriedade DataBind no C# :/
Responder

01/12/2011

Rodrigo Odasaki

DataBind é no ASP.NET
Você está em uma aplicação WindowsFormns né?
Responder

01/12/2011

Dyego

isso!

como disse, é um programa de atividades recentes..
ainda to na batalha pra resolver este problema! heheh
Responder

02/12/2011

Rodrigo Odasaki

Solução:

Você precisa definir como nulo o seu datasource e depois popular ele.
Lembrando que a propriedade AutoGeneratiionColumn deve ficar como true, caso você não tenha mapeado as colunas.

private void button1_Click(object sender, EventArgs e)
{
var clientes = (List<Cliente>) dataGridView1.DataSource;
clientes.Add(new Cliente { Codigo = 4, Nome = Buscapé });

dataGridView1.DataSource = null;
dataGridView1.DataSource = clientes;
}
Responder

02/12/2011

Dyego

opa!

bela colocação rodrigo, eu já tinha tentado desta maneira mas não sabia do generation.. vou testar aqui e posto pra ver o que rolou. obrigado pela atenção meu camarada!
Responder

02/12/2011

Dyego

então rodrigo, não tem essa propriedade no dataGrid não...
eu to com o código que tava testando já de por em nulo o data source e depois reconectar
mas ele só poe nulo e não reconecta... estranho isso
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar