DataGridView travando.
07/08/2015
0
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
Post mais votado
07/08/2015
Tente utilizar:
datagridview.CurrentRow.Cells[index].Value.ToString()
Edison Harada
Mais Posts
07/08/2015
Edison Harada
Tente utilizar:
datagridview.CurrentRow.Cells[index].Value.ToString()
08/08/2015
Fabiano Silva
08/08/2015
Fabiano Silva
09/08/2015
Edison Harada
09/08/2015
Fabiano Silva
09/08/2015
Fabiano Silva
[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.
10/08/2015
Edison Harada
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 */ } }
10/08/2015
Fabiano Silva
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.
Clique aqui para fazer login e interagir na Comunidade :)