C# DataGrid não atualiza
28/11/2011
0
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
Posts
03/12/2011
Rodrigo Odasaki
No caso você precisa substituir pelo seu.
Veja bem, você deve ter um método que é o Load do form certo?
Ou seja ao carregar será populado o seu Grid vindas da base do SQL.
Seu grid está ligado a algum DataSource.
Então no seu método incluir você precisa após a inclusão definir o DataSource do seu Grid como null e após isso setar o DataSource novamente.
Exemplo:
Grid.DataSource = null;
GridDataSource = AQUI você coloca seu DataSource;
Se você não conseguir posta o código do método Load do form que popula o seu Grid, assim vou poder ver e te mostrar.
Ou upa o projeto em algum site para download.
03/12/2011
Dyego
private void button3_Click(object sender, EventArgs e)
{
string strcon = Data Source=PHOENIX\\SQLEXPRESS;Initial Catalog=Ortifa;Integrated Security=True;
string seltable = select * from Lembre;
string inserir = Delete From Lembre where Titulo = (+tbtitulo.Text+);
//and + tbdata.Text + )
SqlConnection conexao = new SqlConnection(strcon);
SqlDataAdapter da = new SqlDataAdapter(seltable, conexao);
DataSet ds = new DataSet();
SqlCommand cmdinsert = new SqlCommand(inserir, conexao);
conexao.Open();
cmdinsert.ExecuteNonQuery();
conexao.Close();
conexao.Open();
// GridLembre.DataSource = da.Fill(ds, seltable);
GridLembre.DataSource = null;
conexao.Close();
conexao.Open();
// da.Fill(ds);
this.lembreTableAdapter.Fill(this.ortifaDataSet.Lembre);
GridLembre.DataSource = seltable;
conexao.Close();
/* conexao.Open();
da.Fill(ds);
GridLembre.DataSource = lembreBindingSource2;
conexao.Close();
TableAdapter.Fill(DataSet.Tabela);
lembreTableAdapter.Fill(DataSet.lembre);
conexao.Close();
Form2 formu1 = new Form2();
this.Close();
Form2 formu2 = new Form2();
formu2.Show();
*/
tbtitulo.Text = ;
a linha this.lembreTableAdapter.Fill(this.ortifaDataSet.Lembre); é a única linha que está no meu Form_Load
ainda não está atualizando, mas aparece as linhas já, que antes não aparecia
se poder add msn: d5web@hotmail.com
03/12/2011
Dyego
acabei de conseguir aqui...
creio que não seja da forma mais correta, mas pelo menos está atualizando
eu coloquei o dataset no datasource após a linha que popula o dataGrid entao ficou assim:
private void button3_Click(object sender, EventArgs e)
{
string strcon = Data Source=PHOENIX\\SQLEXPRESS;Initial Catalog=Ortifa;Integrated Security=True;
string seltable = select * from Lembre;
string inserir = Delete From Lembre where Titulo = (+tbtitulo.Text+);
//and + tbdata.Text + )
SqlConnection conexao = new SqlConnection(strcon);
SqlDataAdapter da = new SqlDataAdapter(seltable, conexao);
DataSet ds = new DataSet();
SqlCommand cmdinsert = new SqlCommand(inserir, conexao);
conexao.Open();
cmdinsert.ExecuteNonQuery();
conexao.Close();
conexao.Open();
// GridLembre.DataSource = da.Fill(ds, seltable);
GridLembre.DataSource = null;
conexao.Close();
conexao.Open();
// da.Fill(ds);
this.lembreTableAdapter.Fill(this.ortifaDataSet.Lembre);
GridLembre.DataSource = ortifaDataSet.Lembre;
conexao.Close();
agradeço a atenção de vcs!
até a próxima dúvida.. heheh
03/12/2011
Rodrigo Odasaki
Após o GridLembre.DataSource = null;
Colocar novamente no DataSource sua fonte de dados.
03/12/2011
Dyego
foi meu primeiro post, sou novo no forum
03/12/2011
Rodrigo Odasaki
Também não sei!
hehehe
Não uso MSN, só Skype
Se quiser add rodrigo.odasaki
Porém só trabalho na plataforma Web
12/12/2011
Flavia Santos
Só uma duvida, seu grid está dentro de um update panel?
12/12/2011
Dyego
Não lembro de ter usado alguma ferramenta com este nome.
Apenas joguei o grid no formulário e selecionei meu data source
12/12/2011
Rodrigo Odasaki
Clique aqui para fazer login e interagir na Comunidade :)