Que tal un saludo, la situación es la siguiente, tengo creada mi BD con SQLite almacena varias variables de todo tipo int, date, varchar, las normales y hasta ahi todo funciona perfecto, el problema que tengo es que no tengo idea de como almacenar imágenes como blobs.
Lo que he intentado es poner en un formulario un botón para cargar la imagen a guardar, pero entiendo que después de esto tendría que hacer una conversión a a un arreglo de bytes y almacenar ese arreglo, pero ahi es donde entra mi duda, en el como hacerlo.
Este es mi codigo para cargar la imagen en el formulario:
#region abrir imagen
void btn_CargarImagenClick(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFileDialog1.Filter = "Archivos de imagen(*.jpg)|*.jpg| Archivos de Imagen(*.bmp)|*.bmp|Todos los archivos (*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
// byte[] contenidoArchivo = File.ReadAllBytes("c:\\");
if (openFileDialog.ShowDialog(this) == DialogResult.OK)
{
string FileName = openFileDialog.FileName;
imagencargada.ImageLocation = FileName.ToString();
imagencargada.Text = FileName.ToString();
}
else
{
MessageBox.Show("No se ha podido cargar la imagen,intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
y este es el código de como hago la conexión con mi BD y almaceno mis datos:
private SQLiteConnection conexion; //Conexion a la BD SQLite (Clase de System.Data.SQLite)
private SQLiteDataAdapter db; //Adaptador (Clase de System.Data.SQLite)
private DataSet ds = new DataSet(); //DataSet
private DataTable dt = new DataTable(); //DataTable
void Btn_guardarClick(object sender, EventArgs e)
{
conectarbd();
string strSQL = "SELECT * FROM '"+comboBox1.Text.Trim()+"'";
db = new SQLiteDataAdapter(strSQL, conexion);
ds.Reset();
db.Fill(ds);
dt = ds.Tables[0];
DataRow dr = dt.NewRow ();
dr["id"] = textBox7.Text;
dr["modelo"] = textBox1.Text;
dr["date_fecha"] = textBox2.Text;
dr["proveedor"] = textBox3.Text;
dr["criterio"] = textBox4.Text;
dr["unidad_medida"] = textBox5.Text;
dr["comentario"] = textBox6.Text;
dr["cantidad"] = label_cantidad.Text;
dr["color"] = label_color.text;
dt.Rows .Add (dr);
SQLiteCommandBuilder cb = new SQLiteCommandBuilder (db);
cb.QuotePrefix ="[";
cb.QuoteSuffix ="]";
db.InsertCommand = cb.GetInsertCommand ();
db.Update (dt);
dt.AcceptChanges ();
conexion.Close ();
MessageBox.Show("Se ha guardado exitosamente el registro en '"+comboBox1.Text.Trim()+"'");
limpiar();
}