DataGridView travando.
Boa noite! Estou usando VS Express 2013 for Windows Desktop. A linguagem de programação é C#.
Estou elaborando um projeto para o meu TCC. Já fiz várias pesquisas, algumas deram certo, outras não. E é em razão disso que busco ajuda. Veja a imagem:
[img:descricao=DataGridView dando erro ao iniciar o projeto.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150807-182624.jpg[/img]
Eu clico em OK, o erro sai. Mas quando clico em uma da linhas do grid aparece esse erro como mostra a imagem:
[img:descricao=Erro ao clicar na linha do grid.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150807-182852.jpg[/img]
Eu que eu quero é que esse desapareça, e quando clicar em uma das linhas do grid, todos os campos, inclusive o da imagem, sejam preenchidos.
Aqui estão os códigos do dataGridView:
[img:descricao=Códigos do dataGridView em C#, para preenchimento dos campos do form.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150807-183715.jpg[/img]
Estou elaborando um projeto para o meu TCC. Já fiz várias pesquisas, algumas deram certo, outras não. E é em razão disso que busco ajuda. Veja a imagem:
[img:descricao=DataGridView dando erro ao iniciar o projeto.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150807-182624.jpg[/img]
Eu clico em OK, o erro sai. Mas quando clico em uma da linhas do grid aparece esse erro como mostra a imagem:
[img:descricao=Erro ao clicar na linha do grid.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150807-182852.jpg[/img]
Eu que eu quero é que esse desapareça, e quando clicar em uma das linhas do grid, todos os campos, inclusive o da imagem, sejam preenchidos.
Aqui estão os códigos do dataGridView:
[img:descricao=Códigos do dataGridView em C#, para preenchimento dos campos do form.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150807-183715.jpg[/img]
Fabiano Silva
Curtidas 0
Melhor post
Edison Harada
07/08/2015
Não sei se entendi direito, mas você quer que ao clicar no data grid a linha em que ele clicou preencha os campos certo?
Tente utilizar:
datagridview.CurrentRow.Cells[index].Value.ToString()
Tente utilizar:
datagridview.CurrentRow.Cells[index].Value.ToString()
GOSTEI 1
Mais Respostas
Edison Harada
07/08/2015
Não sei se entendi direito, mas você quer que ao clicar no data grid a linha em que ele clicou preencha os campos certo?
Tente utilizar:
datagridview.CurrentRow.Cells[index].Value.ToString()
Tente utilizar:
datagridview.CurrentRow.Cells[index].Value.ToString()
GOSTEI 0
Fabiano Silva
07/08/2015
Obrigado por responder. Vou testar, para ver se dá certo.
GOSTEI 0
Fabiano Silva
07/08/2015
Só uma pergunta. Essa linha de código, eu posso colocar e comentar as demais?
GOSTEI 0
Edison Harada
07/08/2015
Pode substituir as que você estava utilizando por essa.
GOSTEI 0
Fabiano Silva
07/08/2015
Vou fazer isso. Me diz uma coisa, se a versão for ultimate aparece esse erro? Estou baixando essa versão. Sacrificado! Estou aqui desde as 9 da manhã.
GOSTEI 0
Fabiano Silva
07/08/2015
Fiz o que vc me orientou. Mas os resultados foram os mesmos. Sem sucesso. Veja as imagens:
[img:descricao=Quando é clicado no linha acima do código nº 7.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150809-182238.jpg[/img]
Essa imagem é dos códigos. Aqueles códigos com datagridview...[index]... dá erro no index.
[img:descricao=Códigos do grid.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150809-182539.jpg[/img]
Estou no aguardo de sua resposta.
[img:descricao=Quando é clicado no linha acima do código nº 7.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150809-182238.jpg[/img]
Essa imagem é dos códigos. Aqueles códigos com datagridview...[index]... dá erro no index.
[img:descricao=Códigos do grid.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150809-182539.jpg[/img]
Estou no aguardo de sua resposta.
GOSTEI 0
Edison Harada
07/08/2015
Então cara esse erro que está acontecendo agora está se referindo a conexão com o SQL, você precisa criar uma conexão usando a classe "SqlConnection", abrir ela e executar o comando sql que você colocou na variável "cmm" antes de dar um "da.Fill(ds,"tbVoce")" você executa o comando para ele realizar a pesquisa com o SQL.
Como esse exemplo aqui do tutorial de acesso ao banco de dados(https://www.devmedia.com.br/acesso-a-banco-de-dados-em-c-nivel-basico-parte-1/21695#ixzz3iNTsrelw):
Como esse exemplo aqui do tutorial de acesso ao banco de dados(https://www.devmedia.com.br/acesso-a-banco-de-dados-em-c-nivel-basico-parte-1/21695#ixzz3iNTsrelw):
private void button1_Click(object sender, EventArgs e)
{
/*A variável strcon é o connection string que copiamos anteriormente enquanto criávamos o banco de dados, essa variável poderia ser utilizada para todos os botões do programa, mas irei repeti-la várias vezes para fixar a idéia dos passos que precisamos seguir para fazer a conexão com o banco, Obs.: note que o caminho do seu banco precisa estar com “\\” se não estiver coloque */
string strcon = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\k\\Meus documentos\\banco_dados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection conexao = new SqlConnection(strcon); /* conexao irá conectar o C# ao banco de dados */
SqlCommand cmd = new SqlCommand("SELECT * FROM tabela", conexao); /*cmd possui mais de um parâmetro, neste caso coloquei o comando SQL "SELECT * FROM tabela" que irá selecionar tudo(*) de tabela, o segundo parâmetro indica onde o banco está conectado,ou seja se estamos selecionando informações do banco precisamos dizer onde ele está localizado */
Try //Tenta executar o que estiver abaixo
{
conexao.Open(); // abre a conexão com o banco
cmd.ExecuteNonQuery(); // executa cmd
/*Pronto após o cmd.ExecuteNonQuery(); selecionamos tudo o que tinha dentro do banco, agora os passos seguintes irão exibir as informações para que o usuário possa vê-las */ SqlDataAdapter da = new SqlDataAdapter(); /* da, adapta o banco de dados ao nosso projeto */
DataSet ds = new DataSet();
da.SelectCommand = cmd; // adapta cmd ao projeto
da.Fill(ds); // preenche todas as informações dentro do DataSet
dataGridView1.DataSource = ds; //Datagridview recebe ds já preenchido
dataGridView1.DataMember = ds.Tables[0].TableName; /*Agora Datagridview exibe o banco de dados*/
}
catch (Exception ex)
{
MessageBox.Show("Erro "+ex.Message); /*Se ocorer algum erro será informado em um msgbox*/
throw;
}
finally
{
conexao.Close(); /* Se tudo ocorrer bem fecha a conexão com o banco da dados, sempre é bom fechar a conexão após executar até o final o que nos interessa, isso pode evitar problemas futuros */
}
}
GOSTEI 0
Fabiano Silva
07/08/2015
Olá, bom dia!
Olha! Aqueles códigos não deram certo. Resolvi recomeçar. Olha esse erro.
[img:descricao=Tentando fazer um Insert.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150810-110004.jpg[/img]
Aqui estão os códigos:
Estes códigos são baseados no vídeo: https://www.youtube.com/watch?v=VVQ2KFjrW6c
Não tem som, mas dá para entender direitinho.
Olha! Aqueles códigos não deram certo. Resolvi recomeçar. Olha esse erro.
[img:descricao=Tentando fazer um Insert.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150810-110004.jpg[/img]
Aqui estão os códigos:
public partial class frmVoce : Form
{
SqlConnection conn = new SqlConnection(@"Data Source=fabiano-pc\sqlexpress;Initial Catalog=UserLogin;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
int i = 0;
string imgLoc = "";
public frmVoce()
{
InitializeComponent();
}
private void Voce_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'userLoginDataSet1.tbVoce' table. You can move, or remove it, as needed.
this.tbVoceTableAdapter.Fill(this.userLoginDataSet1.tbVoce);
SqlConnection conn = new SqlConnection(@"Data Source=fabiano-pc\sqlexpress;Initial Catalog=UserLogin;Integrated Security=True");
//conn.ConnectionString = Properties.Settings.Default.UserLoginConnectionString1;
try
{
conn.Open();
MessageBox.Show("Conexão realizada com sucesso!", "Realizando uma conexão...", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(String.Format("Fala ao realizar a conexão! Tente Novamente. : ", ex.Message));
}
habilita_campos();
dgvVoce.RowTemplate.Height = 180;
showdata();
}
//===============Salvando dados=============================
private void picSalvar_Click(object sender, EventArgs e)
{
conn.Open();
SqlCommand cmm = new SqlCommand("INSERT INTO tbVoce(CodVoce, DtNascimento, IdadeVoce, NomeVoce, DtAtual, FotoVoce, EnderecoVoce, TelFixo, Operadora, TelCel, Texto)VALUES('" + txtCodigo.Text + "','" + dtpNascimento.Text + "','" + txtIdade.Text + "','" + txtNome.Text + "','" + dtpHoje.Text + "', @FotoVoce,'" + txtEndereco.Text + "','" + mskTelefone.Text + "','" + cbCelular.Text + "', '" + mskCelular.Text + "')", conn);
MemoryStream stream = new MemoryStream();
picFoto.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] pic = stream.ToArray();
cmm.Parameters.AddWithValue("@FotoVoce", pic);
i = cmm.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("Dados salvos com sucesso!" + i + "Row");
}
conn.Close();
}
Estes códigos são baseados no vídeo: https://www.youtube.com/watch?v=VVQ2KFjrW6c
Não tem som, mas dá para entender direitinho.
GOSTEI 0