Conexão com o banco de dados e inserindo uma imagem no banco.
Boa tarde!
Estou com um problema sério. Vivo pesquisando meios para fazer uma conexão com o banco de dados SQL Server 2014 Express e o C#. E assim, inserir uma imagem nesse banco. Nos vídeos que assisto dão tudo certo. Agora, quando desenvolvo para a minha aplicação dá tudo errado. Veja a imagem e os códigos:
[img:descricao=Erro ao fazer uma conexão para inserção de imagem.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150810-165851.jpg[/img]
Estou com um problema sério. Vivo pesquisando meios para fazer uma conexão com o banco de dados SQL Server 2014 Express e o C#. E assim, inserir uma imagem nesse banco. Nos vídeos que assisto dão tudo certo. Agora, quando desenvolvo para a minha aplicação dá tudo errado. Veja a imagem e os códigos:
[img:descricao=Erro ao fazer uma conexão para inserção de imagem.]http://arquivo.devmedia.com.br/forum/imagem/446588-20150810-165851.jpg[/img]
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(); } Esses códigos são para inserir uma imagem no banco de dados. private void picSalvar_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=fabiano-pc\sqlexpress;Initial Catalog=UserLogin;Integrated Security=True"); ; 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(); }
Fabiano Silva
Curtidas 0
Melhor post
Fabiano Santos
12/08/2015
Funcionou Fabiano?
GOSTEI 1
Mais Respostas
Jothaz
10/08/2015
Tente alterar a expressão para:
Mas acho que a melhor saída é simplifique sua query de insert.
Coloque somente os campos obrigatórios e a imagem.
E coloque todos os campos que for inserir como parâmetro.
+ "'," + @FotoVoce + ",'" +
Mas acho que a melhor saída é simplifique sua query de insert.
Coloque somente os campos obrigatórios e a imagem.
E coloque todos os campos que for inserir como parâmetro.
GOSTEI 0
Fabiano Silva
10/08/2015
Já tentei fazer isso. Ñ deu certo.
GOSTEI 0
Fabiano Santos
10/08/2015
Acho que faltou você definir a conexão para o SqlCommand. Algo assim:
SqlCommand cmm; cmm.Connection = conn; 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);
GOSTEI 0
Fabiano Silva
10/08/2015
funcionou.
GOSTEI 0