Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 528498
            [titulo] => Conexão com o banco de dados e inserindo uma imagem no banco.
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-08-12 13:53:35
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 229259
            [status] => A
            [isExample] => 
            [NomeUsuario] => FABIANO LUCIANO DOS SANTOS
            [Apelido] => Fabiano Lux
            [Foto] => 229259_20150601211727.jpg
            [Conteudo] => Funcionou Fabiano?
        )

)

Conexão com o banco de dados e inserindo uma imagem no banco.

Fabiano Silva
   - 10 ago 2015

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:
Erro ao fazer uma conexão para inserção de imagem. (Clique na imagem para abrir em uma nova janela)
#Código

 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. : {0}", 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();
        }

Post mais votado

Fabiano Lux
|
MVP
    12 ago 2015

Funcionou Fabiano?

Jothaz
   - 10 ago 2015

Tente alterar a expressão para:

#Código

 + "'," +  @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.

Fabiano Silva
   - 11 ago 2015

Já tentei fazer isso. Ñ deu certo.

Fabiano Lux
|
MVP
    11 ago 2015

Acho que faltou você definir a conexão para o SqlCommand. Algo assim:

#Código

            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);

Fabiano Silva
   - 14 ago 2015

funcionou.