5 mensajes Página 1 de 1
Hola peña , estoy realizando una aplicacion con sqlite que requiere la inserción de imágenes en la bd , la verdad es que nunca e usado campos de tipo blob asi que en mi script no estoy seguro donde esta el fallo porque al insertar de esta forma no me da ningún error:
if (File.Exists(textBoxImagePath.Text))
                    {
                        byte[] bt = File.ReadAllBytes(@"" + textBoxImagePath.Text);

                        String sql = String.Format("INSERT INTO {0} ({1},{2}) Values('{3}','{4}')", SqliteHelper.CATEGORIAS_TABLE, SqliteHelper.CATEGORIA_NOMBRE, SqliteHelper.IMAGEN_BLOB, textBoxNameCategory.Text, bt);
                        if (SqliteHelper.ExecuteNonQuery(sql))
                        {
                            // proceder


                        }
                    }
Parsed in 0.003 seconds, using GeSHi 1.0.8.9


Pero sin embargo cuando miro los datos insertados en la bd con SqliteExpert esto me muestra y me da que no es correcto:

Imagen
Imagen
Imagen

Aunque no me de error esos datos no son de una imagen verdad? porque al cargar la imagen es cuando surge el error en el parametro del stream:

DataTable dat = SqliteHelper.getData(String.Format("SELECT imagen_ruta FROM {0} WHERE {1} = '{2}'", SqliteHelper.CATEGORIAS_TABLE, SqliteHelper.CATEGORIA_NOMBRE, textBoxNameCategory.Text));
                            byte[] bts = (System.Byte[])dat.Rows[0]["imagen_ruta"];
                            MemoryStream ms = new MemoryStream(bts);
                            pictureBox1.Image = Image.FromStream(ms, true);
Parsed in 0.003 seconds, using GeSHi 1.0.8.9


Exactamenet en la linea MemoryStream ms = new MemoryStream(bts); y como error:

El parametro no es valido;

Asi que cual debe ser el fallo?

Esta claro que hay muchos conceptos que no tengo claros todavia con c# pero todo se andara . :beta:

solucionado como siempre por mi diossssssss pabloko :hypno:

pon la solucion mamonn
ImagenImagenImagenImagen

:) Empato con Pablo...

Saludos.
Look at that asshole >>> Imagen <<< Look at that face
It means..."The fuck is this, the fuck is that"
*QUIERO MI DIPLOMA*

jajajja es verdad ...

Bueno ele error era intentar meter el parámetro de bytes directamente al string de consulta y la solución es usar siempre comand.parameter para evitar errores :

System.IO.FileStream fs = new FileStream(@""+textBoxImagePath.Text, FileMode.Open);
                        System.IO.BufferedStream bf = new BufferedStream(fs);
                        byte[] buffer = new byte[bf.Length];
                        bf.Read(buffer, 0, buffer.Length);

                        byte[] buffer_new = buffer;

                       
                        using (SQLiteConnection conn = new SQLiteConnection(SqliteHelper.dbconnectionStr))
                        {
                            conn.Open();
                            using (SQLiteTransaction tran = conn.BeginTransaction())
                            {

                                using (SQLiteCommand cmd = conn.CreateCommand())
                                {
                                    cmd.Transaction = tran;
                                    cmd.Connection = conn;
                                    cmd.CommandText = "INSERT INTO CATEGORIAS (categoria_nombre,imagen_ruta) Values(@nombre,@imagen)";
                                    cmd.Parameters.AddWithValue("@nombre", textBoxNameCategory.Text);
                                    cmd.Parameters.AddWithValue("@imagen", buffer_new);
                                    cmd.ExecuteNonQuery();
                                    cmd.Dispose();
                                    tran.Commit();
                                    conn.Close();
                                   
                                }

                            }

                        }
Parsed in 0.005 seconds, using GeSHi 1.0.8.9
5 mensajes Página 1 de 1

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron