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