sYnced Posted June 19, 2013 at 02:18 PM Report #513809 Posted June 19, 2013 at 02:18 PM (edited) Boas enganei-me acima, é em MYSQL, Apenas tinha conseguido já fazer em sql Boas pessoal estou com um problema, consegui inserir em sql server mas em mysql não consigo, é mesmo necessário inserir a imagem na base de dados, o meu código é o seguinte: //converter imagem para bytes public static byte[] convertfoto(Image img) { byte[] byteArray = new byte[0]; using (MemoryStream stream = new MemoryStream()) { img.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); stream.Close(); byteArray = stream.ToArray(); } return byteArray; } //converter bytes para imagem public static Image byte2image(byte[] pic) { MemoryStream ms = new MemoryStream(pic); Image img = Image.FromStream(ms); return img; } A querie está direita. MySqlParameter picparameter = new MySqlParameter(); picparameter.MySqlDbType = MySqlDbType.Binary; picparameter.ParameterName = "Fotografia"; picparameter.Value = inserir.Foto; MySqlCommand cmd = new MySqlCommand(querie.ToString(), cn); cmd.Parameters.Add(new MySqlParameter("@DataDeNascimento", MySqlDbType.DateTime)).Value = inserir.DtNascimento; cmd.Parameters.Add(picparameter); cmd.ExecuteNonQuery(); PS: Já tentei BLOB Cumprimentos... Edited June 19, 2013 at 02:25 PM by sYnced
nelsonr Posted June 19, 2013 at 02:31 PM Report #513814 Posted June 19, 2013 at 02:31 PM (edited) A parte de converter a imagem para byte[] e vice-versa parece-me ok. Qual é o problema exacto? Não fica nada no campo? Qual é o tipo de campo que tens na base de dados? Edited June 19, 2013 at 02:32 PM by nelsonr
sYnced Posted June 19, 2013 at 02:32 PM Author Report #513815 Posted June 19, 2013 at 02:32 PM Só dá bit, byte binary, aliás bit dá erro, por norma usei binary mas ao converter de byte para imagem deu me um erro... Antes do cmd.ExecuteNonQuery(); Para sql server bastava por .image, aqui não tinha pus em binary que ia dar ao mesmo!
nelsonr Posted June 19, 2013 at 02:39 PM Report #513818 Posted June 19, 2013 at 02:39 PM Nunca testei com MySQL, mas pelo que vejo aqui, o formato convem ser blob (tinyblob, blob, mediumblob ou longblob) http://www.phpriot.com/articles/storing-images-in-mysql/3 Se o erro é ao converter dos dados lidos da base de dados, podes fazer um teste rapido. Numa imagem pequena, antes de gravares vês o que tens dentro do byte[]. Depois lês e vês o que está no byte[]. Se for diferente é porque a parte da gravação/leitura não está bem.
sYnced Posted June 19, 2013 at 02:40 PM Author Report #513819 Posted June 19, 2013 at 02:40 PM Ok obrigado vou ver isso!
nelsonr Posted June 19, 2013 at 02:46 PM Report #513823 Posted June 19, 2013 at 02:46 PM Aqui tens um exemplo em C# a ler e gravar um blob http://dev.mysql.com/doc/refman/5.5/en/connector-net-programming-blob.html
sYnced Posted June 19, 2013 at 02:52 PM Author Report #513825 Posted June 19, 2013 at 02:52 PM (edited) São diferentes(dados), só me passa a posição 0... public static byte[] SelectPicUser(ClienteGestao cli) { object pic = new object(); MySqlConnection cn = new MySqlConnection(cs); cn.Open(); string querie = "Select Fotografia from cliente where id="+cli.ID+""; MySqlCommand cmd = new MySqlCommand(querie, cn); cmd.ExecuteNonQuery(); pic = cmd.ExecuteScalar(); byte[] imagedata = new byte[0]; imagedata = (byte[]) pic; return imagedata; } Ando a ficar doido... Edited June 19, 2013 at 02:53 PM by sYnced
sYnced Posted June 19, 2013 at 03:07 PM Author Report #513831 Posted June 19, 2013 at 03:07 PM Consegui resolver ty, meti longbob!
TutoDS Posted May 24, 2017 at 10:49 AM Report #604590 Posted May 24, 2017 at 10:49 AM Boas. Precisava de fazer o mesmo, mas com SQL e não MySql. Podes me ajudar?
General Posted May 25, 2017 at 10:33 AM Report #604631 Posted May 25, 2017 at 10:33 AM 23 hours ago, TutoDS said: Boas. Precisava de fazer o mesmo, mas com SQL e não MySql. Podes me ajudar? Experimenta gravar bytes convertidos em base64.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now