Hola dev como estan, espero que bien ,bueno en este post les comparto este articulo a como guardar datos con imagenes a la base de datos sql server en schap c# .
Para guardar imágenes en una base de datos SQL con C#, generalmente se sigue un enfoque donde se convierte la imagen en bytes y luego se almacena en una columna de tipo de datos BLOB (Binary Large Object) en la tabla de la base de datos. Aquí te muestro los pasos básicos para lograrlo:
- 1.- Prepara tu base de datos: Asegúrate de tener una tabla en tu base de datos con una columna de tipo BLOB que almacenará las imágenes. Puedes usar una tabla similar a esta:
create database imagen
use imagen
CREATE TABLE Imagenes (
Id INT PRIMARY KEY,
Nombre NVARCHAR(50),
Imagen VARBINARY(MAX)
);
2.- Prepara tu aplicación C# diseñamos el formulario como en la imagen
3.- vamos a codificar.
// Abre un
cuadro de diálogo para seleccionar la imagen
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Archivos de
imagen|*.png;*.jpg;*.bmp;*.gif";
if
(openFileDialog.ShowDialog() == DialogResult.OK)
{
// Obtiene
la ruta del archivo seleccionado
imagePath =
openFileDialog.FileName;
// Carga la
imagen en el PictureBox
pictureBox1.Image =
Image.FromFile(imagePath);
}
codigo para button guardar datos
private void button2_Click(object sender, EventArgs e)
{
string connectionString
= @"Data Source=CPIPRODESIGN\SQLEXPRESS;Initial
Catalog=imagen;Integrated Security=True";
//string imagePath =
@"C:Users\LENOVO\OneDrive\Imágenes\logo-systfarma-ico-nuevo.png"; //
Cambia esto a la ruta de tu imagen
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Lee la imagen desde el archivo y conviértela en bytes
byte[] imageData;
using (FileStream fs = new FileStream(imagePath, FileMode.Open,
FileAccess.Read))
{
imageData = new byte[fs.Length];
fs.Read(imageData, 0, (int)fs.Length);
}
// Guarda la imagen en la base de datos
string insertQuery = "INSERT
INTO Imagenes (Id, Nombre, Imagen) VALUES (@Id, @Nombre, @Imagen)";
using (SqlCommand cmd = new SqlCommand(insertQuery, connection))
{
cmd.Parameters.AddWithValue("@Id", textBox1.Text); // Cambia el valor del Id según tus
necesidades
cmd.Parameters.AddWithValue("@Nombre",textBox2.Text); // Cambia el nombre de la imagen según tus
necesidades
cmd.Parameters.AddWithValue("@Imagen", imageData);
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
// Manejo
de errores
MessageBox.Show("Error: " + ex.Message);
}
}