sábado, 5 de agosto de 2023

 

como guardar imagenes a la base de datos SQLSERVER con C# CSHARP

 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. 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.

declarar el siguiente variable global
 string imagePath;//variable global de ruta de imagen

codigo para cargar la imagen a picturebox

// 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);

            }

        }

Share:

jueves, 1 de septiembre de 2022

 

Como Crear BASE DE DATOS Y TABLAS Y RELACIONAR en SQL SERVER Desde Cero [2022]

 Hola dev como estan  espero que bien, en este articulo les muestro a como crear una base de datos en sql server




script de la base de datos del ejemplo

USE [Colegio]
GO
/****** Object:  Table [dbo].[Alumnos]    Script Date: 1/09/2022 16:48:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Alumnos](
[IdAlumno] [int] NOT NULL,
[nombres] [varchar](50) NULL,
[telefono] [char](10) NULL,
[idDistrito] [int] NULL,
 CONSTRAINT [PK_Alumnos] PRIMARY KEY CLUSTERED 
(
[IdAlumno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Distrito]    Script Date: 1/09/2022 16:48:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Distrito](
[idDistrito] [int] NOT NULL,
[nombre] [varchar](50) NULL,
 CONSTRAINT [PK_Distrito] PRIMARY KEY CLUSTERED 
(
[idDistrito] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Alumnos]  WITH CHECK ADD  CONSTRAINT [FK_Alumnos_Distrito] FOREIGN KEY([idDistrito])
REFERENCES [dbo].[Distrito] ([idDistrito])
GO
ALTER TABLE [dbo].[Alumnos] CHECK CONSTRAINT [FK_Alumnos_Distrito]
GO




Share:

jueves, 18 de agosto de 2022

 

como imprimir comprobantes en c# (printDocument)

 hey hola, nuevamente yo por aquí ,para compartirles este articulo a como hacer la impresion de comprobantes de pago en c#












controles a utilizar son:


primeramente Diseñamos nuestro formulario como la imagen siguiente


Vamos a código.

primeramente creamos nuestro método impresión.

private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

 

{

            //Image image = panel1.BackgroundImage;

e.Graphics.DrawString("Tiket de ventas", new Font("Arial", 10, FontStyle.Bold), Brushes.Black, new Point(30, 10));

e.Graphics.DrawString("_________________________________________", new Font("Arial", 6, FontStyle.Regular), Brushes.Black, new Point(3, 20));

 

e.Graphics.DrawString("nro: 100", new Font("Arial", 10, FontStyle.Bold), Brushes.Black, new Point(5, 40));

e.Graphics.DrawString("fecha de venta : 18/08/2022", new Font("Arial", 10, FontStyle.Bold), Brushes.Black, new Point(5, 60));

 

}

 
luego llamamos nuestro metodo desde nuestro buton Imprimir

private void button1_Click(object sender, EventArgs e)

        {

            //printDocument.Print();

            PrintDocument pd = new PrintDocument();

            //PaperSize ps = new PaperSize("factura", 827, 1169);

             PaperSize ps = new PaperSize("Boleta", 200, 600);

pd.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);

 

            pd.PrintController = new StandardPrintController();

            pd.DefaultPageSettings.Margins.Left = 0;

            pd.DefaultPageSettings.Margins.Right = 0;

            pd.DefaultPageSettings.Margins.Top = 0;

            pd.DefaultPageSettings.Margins.Bottom = 0;

 

            pd.DefaultPageSettings.PaperSize = ps;

            pd.Print();

        }

codigo para nuestro buton vista previa de impresion

 

private void button2_Click(object sender, EventArgs e)

        {

            printPreviewDialog1.Document = printDocument;

            printPreviewDialog1.ShowDialog();

        }

eso seria todo espero haber ayudado con este articulo.

gracias saludos.



Share:

jueves, 14 de abril de 2022

 

Leer datos XML en un conjunto de datos y mostrar en control datagridview en c# desarrollado en visual estudio 2022

hey hola, nuevamente yo por aquí ,para compartirles este articulo a como Leer datos XML en un conjunto de datos y mostrar en control datagridview .

 Nuestro datos xml es lo siguiente.(recuerda guardar con extensión xml.)  
<Authors_Table>
  <authors>
    <au_id>172-32-1176</au_id>
    <au_lname>White</au_lname>
    <au_fname>Johnson</au_fname>
    <phone>408 496-7223</phone>
    <address>10932 Bigge Rd.</address>
    <city>Menlo Park</city>
    <state>CA</state>
    <zip>94025</zip>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>213-46-8915</au_id>
    <au_lname>Green</au_lname>
    <au_fname>Margie</au_fname>
    <phone>415 986-7020</phone>
    <address>309 63rd St. #411</address>
    <city>Oakland</city>
    <state>CA</state>
    <zip>94618</zip>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>238-95-7766</au_id>
    <au_lname>Carson</au_lname>
    <au_fname>Cheryl</au_fname>
    <phone>415 548-7723</phone>
    <address>589 Darwin Ln.</address>
    <city>Berkeley</city>
    <state>CA</state>
    <zip>94705</zip>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>267-41-2394</au_id>
    <au_lname>Hunter</au_lname>
    <au_fname>Anne</au_fname>
    <phone>408 286-2428</phone>
    <address>22 Cleveland Av. #14</address>
    <city>San Jose</city>
    <state>CA</state>
    <zip>95128</zip>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>274-80-9391</au_id>
    <au_lname>Straight</au_lname>
    <au_fname>Dean</au_fname>
    <phone>415 834-2919</phone>
    <address>5420 College Av.</address>
    <city>Oakland</city>
    <state>CA</state>
    <zip>94609</zip>
    <contract>true</contract>
  </authors>
</Authors_Table>

Diseño de nuestro formulario

ojo declarar variable AuthorsDataSet  a nivel global 

public DataSet AuthorsDataSet = new DataSet();

codigo para button leer datos xml

private void leerdatosxml_Click(object sender, EventArgs e)

        {

            string filePath = "C:/Users/LENOVO/source/repos/xml-dataGridview/xml-                    dataGridview/bin/Debug/net6.0-windows/datos.xml";

             AuthorsDataSet.ReadXml(filePath); 

            dataGridView1.DataSource = AuthorsDataSet;

            dataGridView1.DataMember = "authors";

        }



codigo para button mostrar esquema

 private void mostraresquema_Click(object sender, EventArgs e)

        { 

           System.IO.StringWriter swXML = new System.IO.StringWriter();

            AuthorsDataSet.WriteXmlSchema(swXML);

            textBox1.Text = swXML.ToString();

        }


eso seria todo .si desean el proyecto pueden descargar de nuestro repositorio en github

http://usheethe.com/A1ha

Share:

martes, 12 de abril de 2022

 

cargar datos a control combobox en c# desde base datos sql server 2022

 hey bienvenido gracias por estar por aquí , yo de nuevo por aquí  posteando este articulo a como cargar datos al control combobox desde una base de datos sql server.

diseño de nuestro formulario de practica como la imagen siguiente

se desea cargar los nombres de los alumnos registrados al control combobox

vamos a codificarlo ( en realidad es muy facil)

private void Form1_Load(object sender, EventArgs e)

        {

         SqlConnection cn = new SqlConnection(@"Data                 Source=CPIPRODESIGN\SQLEXPRESS;Initial Catalog=colegios;Integrated Security=True");

            cn.Open();

            SqlCommand cm=new SqlCommand("select*from alumnos",cn);

            SqlDataReader dr = cm.ExecuteReader();

            while (dr.Read())

            {

                this.comboBox1.Items.Add(dr["nombres"].ToString());

            }

        }



Share:

domingo, 27 de marzo de 2022

 

como hacer un crud en c# y Postgresql 2022 (create,read,update,eliminar)

   Hola bienvenidos amigos , nuevamente yo por aquí , En este post haremos un crud en c# con la base de datos en POSTGRESQL14


  1. creacion de base de datos
create database colegio

create table alumnos(

   codigo serial,

                nombres varchar(80),

                direccion varchar(100),

                primary key(codigo)      

)

 

insert into alumnos values('1','cristian patricio izquierdo','lima los olivos')

insert into alumnos values('2','lili rodruguez salas','lima los olivos')

insert into alumnos values('3','Yesenia silva salas','lima los olivos')

 

select*from alumnos

2. Diseño de formulario


3. Programación(codigo)
primeramente agregamos nuestro conector desde nuget como la imagen

una vez agregado empezamos a programar
     //conexion global a poostgresql

   NpgsqlConnection cn=new NpgsqlConnection("Server=localhost;User                                              Id=postgres;Password=admin;Database=Colegio");

       

        //list alumnos

        private void getAlumnos()

        {

            NpgsqlDataAdapter da=new NpgsqlDataAdapter("select*from alumnos",cn);

            DataTable dt = new DataTable();

            da.Fill(dt);

            this.dataGridView1.DataSource = dt;

        } 

//insert alumnos
private void insertAlumnos()

        {

            try

            {

                string a;

                a = "insert into alumnos values('" + txtcodigo.Text + "','" +                             (txtnombres.Text) + "','" + (txtdireccion.Text) + "')";

                NpgsqlCommand cmd = new NpgsqlCommand(a, cn);

                cn.Open();

                cmd.ExecuteNonQuery();

                cn.Close();

                MessageBox.Show("Registro guardado correctamente");

                getAlumnos();

            }

 

            catch (InvalidCastException ex)

            { 

                throw ex; 

            } 

        }

//update alumnos

private void updateAlumnos()

 

        {

            try

            {

                string update;

                update = "update alumnos set nombres ='" + txtnombres.Text + "',direccion ='" + txtdireccion.Text + "' where codigo ='" + txtcodigo.Text + "'";

                NpgsqlCommand cmd = new NpgsqlCommand(update, cn);

                cn.Open();

                cmd.ExecuteNonQuery();

                cn.Close();

                MessageBox.Show("Registro actualizado correctamente");

                getAlumnos();

 

            }

 

            catch (InvalidCastException ex)

 

            {

                 throw ex;

 

            }

 

 

        }

//delete alumnos

 

        private void deleteAlumnos()

 

        { 

            try 

            {

                string delete;

                delete = "delete from  alumnos where codigo ='" + txtcodigo.Text + "'";

                NpgsqlCommand cmd = new NpgsqlCommand(delete, cn);

                cn.Open();

                cmd.ExecuteNonQuery();

                cn.Close();

                MessageBox.Show("Registro Eleminado correctamente");

                getAlumnos();

 

            }

 

            catch (InvalidCastException ex)

            { 

                throw ex;

            }

 

        }


//codigo para pasar datos de grid a sus respectivos textbox para eliminar o actualizar

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

        {

            if (e.RowIndex >= 0)

            {

                DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];

                txtcodigo.Text = row.Cells["codigo"].Value.ToString();

                txtnombres+.Text = row.Cells["Nombres"].Value.ToString();

                txtdireccion.Text = row.Cells["Direccion"].Value.ToString();

              

 

            }

        }


Bueno eso seria todo espero ayudarlos.


Share: