none
Stored procedure en LinQ c# RRS feed

  • Pregunta

  • Hola desarrolladores buen día, estoy con un problema resulta que mi proyecto no tiene que tener ningun procedimiento de almacenado en SQLServer y me pidieron hacer todo desde linQ el asunto es que no he encontrado cómo crear el procedimiento de almacenado en el codigo solo como llamar al procedimiento desde el mismo(Cosa que no me sirven porque me prohibieron ocupar SP en SQL Server).
    acá tengo el codigo del SP que hice en el Sql obviamente ya lo borre del mismo y deseo saber como crear este mismo codigo en C# usando LinQ. Una cosa que me falto agregar los datos para llenar ese SP vienen de un archivo excel que rescato mediante un HttpPost

    Create Procedure [dbo].[sp_i_programa_semanal] 
    (@BarNom varchar(50),
    @Fecha datetime,
    @h1 numeric (10, 4),
    @h2 numeric (10, 4),
    @h3 numeric (10, 4),
    @h4 numeric (10, 4),
    @h5 numeric (10, 4),
    @h6 numeric (10, 4),
    @h7 numeric (10, 4),
    @h8 numeric (10, 4),
    @h9 numeric (10, 4),
    @h10 numeric (10, 4),
    @h11 numeric (10, 4),
    @h12 numeric (10, 4),
    @h13 numeric (10, 4),
    @h14 numeric (10, 4),
    @h15 numeric (10, 4),
    @h16 numeric (10, 4),
    @h17 numeric (10, 4),
    @h18 numeric (10, 4),
    @h19 numeric (10, 4),
    @h20 numeric (10, 4),
    @h21 numeric (10, 4),
    @h22 numeric (10, 4),
    @h23 numeric (10, 4),
    @h24 numeric (10, 4))
    
        As
        Begin
        Set nocount on
    
        Declare @codigo_barra int
        Declare @count_reg int
        --select * from tb_programa_semanal
        --sp_help tb_programa_semanal
    
    
        select @codigo_barra = codigo_barra
        from  tb_barra 
        where descripcion_barra = @BarNom
    
        select @count_reg = count(*) 
        from tb_programa_semanal 
        where codigo_barra = @codigo_barra
        and Fecha = @Fecha
        if (@count_reg = 0)
        Begin
                insert into tb_programa_semanal (Codigo_barra,Fecha,FP_h1,FP_h2,FP_h3,FP_h4,FP_h5,FP_h6,
                                                FP_h7,FP_h8,FP_h9,FP_h10,FP_h11,FP_h12,FP_h13,FP_h14,FP_h15,
                                                FP_h16,FP_h17,FP_h18,FP_h19,FP_h20,FP_h21,FP_h22,FP_h23,FP_h24)
                values (@codigo_barra,@Fecha,@h1,@h2,@h3,@h4,@h5,@h6,@h7,@h8,@h9,@h10,@h11,@h12,@h13,@h14,
                        @h15,@h16,@h17,@h18,@h19,@h20,@h21,@h22,@h23,@h24)
        End --fin if (@count_reg = 0)
        Else 
        Begin
            update tb_programa_semanal
            set FP_h1 = @h1,
                FP_h2 = @h2,
                FP_h3 = @h3,
                FP_h4 = @h4,
                FP_h5 = @h5,
                FP_h6 = @h6,
                FP_h7 = @h7,
                FP_h8 = @h8,
                FP_h9 = @h9,
                FP_h10 = @h10,
                FP_h11 = @h11,
                FP_h12 = @h12,
                FP_h13 = @h13,
                FP_h14 = @h14,
                FP_h15 = @h15,
                FP_h16 = @h16,
                FP_h17 = @h17,
                FP_h18 = @h18,
                FP_h19 = @h19,
                FP_h20 = @h20,
                FP_h21 = @h21,
                FP_h22 = @h22,
                FP_h23 = @h23,
                FP_h24 = @h24
            where codigo_barra = @codigo_barra
            and Fecha = @Fecha
        End --fin else
    
    
    
    End --fin Create
    
    
    GO
    
    If exists (Select 1 from sysobjects where name = 'sp_i_programa_semanal')
    Begin
      Select ' -- SP: sp_i_programa_semanal creado >>'
    End


    Joel Baez

    miércoles, 25 de abril de 2018 18:09

Respuestas

  • Si no te permiten crear procedimientos almacenados una alternativa es crear una  clase en c# que realice todo lo que hace el procedimiento almacenado. Aquí te dejo mi propuesta: La clase Datos reemplaza al procedimiento almacenado. 

      public static class Datos
      {
        static string StrCnn = "Cadena de conexion a la db";
    
        public static bool Guardar(String BarNom, DateTime Fecha, int FP_h1, int FP_h2, int FP_h3, int FP_h4, int FP_h5, int FP_h6, int FP_h7, int FP_h8, int FP_h9, int FP_h10, int FP_h11, int FP_h12, int FP_h13, int FP_h14, int FP_h15, int FP_h16, int FP_h17, int FP_h18, int FP_h19, int FP_h20, int FP_h21, int FP_h22, int FP_h23, int FP_h24)
        {
          bool rta = false;
          using (SqlConnection cn = new SqlConnection(StrCnn))
          {
            cn.Open();
            String Codigo_barra = ObtenerCodigoBarra(BarNom, Fecha);
            if (Codigo_barra == "")
              rta = Insert(Codigo_barra, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24, cn);
            else
              rta = Update(Codigo_barra, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24, cn);
          }
          return rta;
        }
    
        public static bool Update(String Codigo_barra, DateTime Fecha, int FP_h1, int FP_h2, int FP_h3, int FP_h4, int FP_h5, int FP_h6, int FP_h7, int FP_h8, int FP_h9, int FP_h10, int FP_h11, int FP_h12, int FP_h13, int FP_h14, int FP_h15, int FP_h16, int FP_h17, int FP_h18, int FP_h19, int FP_h20, int FP_h21, int FP_h22, int FP_h23, int FP_h24, SqlConnection cn)
        {
          string sql = "UPDATE tb_programa_semanal set FP_h1 = @FP_h1, FP_h2 = @FP_h2, FP_h3 = @FP_h3, FP_h4 = @FP_h4, FP_h5 = @FP_h5, FP_h6 = @FP_h6, FP_h7 = @FP_h7, FP_h8 = @FP_h8, FP_h9 = @FP_h9, FP_h10 = @FP_h10, FP_h11 = @FP_h11, FP_h12 = @FP_h12, FP_h13 = @FP_h13, FP_h14 = @FP_h14, FP_h15 = @FP_h15, FP_h16 = @FP_h16, FP_h17 = @FP_h17, FP_h18 = @FP_h18, FP_h19 = @FP_h19, FP_h20 = @FP_h20, FP_h21 = @FP_h21, FP_h22 = @FP_h22, FP_h23 = @FP_h23, FP_h24 = @FP_h24 "
                     + "WHERE codigo_barra = @codigo_barra AND Fecha = @Fecha";
    
          SqlCommand cmd = new SqlCommand(sql, cn);
          cmd.Parameters.AddWithValue("@FP_h1", FP_h1);
          cmd.Parameters.AddWithValue("@FP_h2", FP_h2);
          cmd.Parameters.AddWithValue("@FP_h3", FP_h3);
          cmd.Parameters.AddWithValue("@FP_h4", FP_h4);
          cmd.Parameters.AddWithValue("@FP_h5", FP_h5);
          cmd.Parameters.AddWithValue("@FP_h6", FP_h6);
          cmd.Parameters.AddWithValue("@FP_h7", FP_h7);
          cmd.Parameters.AddWithValue("@FP_h8", FP_h8);
          cmd.Parameters.AddWithValue("@FP_h9", FP_h9);
          cmd.Parameters.AddWithValue("@FP_h10", FP_h10);
          cmd.Parameters.AddWithValue("@FP_h11", FP_h11); 
          cmd.Parameters.AddWithValue("@FP_h12", FP_h23); 
          cmd.Parameters.AddWithValue("@FP_h13", FP_h13); 
          cmd.Parameters.AddWithValue("@FP_h14", FP_h14); 
          cmd.Parameters.AddWithValue("@FP_h15", FP_h15); 
          cmd.Parameters.AddWithValue("@FP_h16", FP_h16); 
          cmd.Parameters.AddWithValue("@FP_h17", FP_h17); 
          cmd.Parameters.AddWithValue("@FP_h18", FP_h18); 
          cmd.Parameters.AddWithValue("@FP_h19", FP_h19);
          cmd.Parameters.AddWithValue("@FP_h20", FP_h20); 
          cmd.Parameters.AddWithValue("@FP_h21", FP_h21); 
          cmd.Parameters.AddWithValue("@FP_h22", FP_h22); 
          cmd.Parameters.AddWithValue("@FP_h23", FP_h23); 
          cmd.Parameters.AddWithValue("@FP_h24", FP_h24);
          cmd.Parameters.AddWithValue("@codigo_barra", Codigo_barra);
          cmd.Parameters.AddWithValue("@Fecha", Fecha);
          return (int)cmd.ExecuteNonQuery() > 0;
        }
    
        public static bool Insert(String Codigo_barra, DateTime Fecha, int FP_h1, int FP_h2, int FP_h3, int FP_h4, int FP_h5, int FP_h6, int FP_h7, int FP_h8, int FP_h9, int FP_h10, int FP_h11, int FP_h12, int FP_h13, int FP_h14, int FP_h15, int FP_h16, int FP_h17, int FP_h18, int FP_h19, int FP_h20, int FP_h21, int FP_h22, int FP_h23, int FP_h24, SqlConnection cn)
        {
          String sql = "INSERT INTO tb_programa_semanal(codigo_barra, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24) VALUES (@codigo_barra, @Fecha, @FP_h1, @FP_h2, @FP_h3, @FP_h4, @FP_h5, @FP_h6, @FP_h7, @FP_h8, @FP_h9, @FP_h10, @FP_h11, @FP_h12, @FP_h13, @FP_h14, @FP_h15, @FP_h16, @FP_h17, @FP_h18, @FP_h19, @FP_h20, @FP_h21, @FP_h22, @FP_h23, @FP_h24)";
          SqlCommand cmd = new SqlCommand(sql, cn);
          cmd.Parameters.AddWithValue("@codigo_barra", Codigo_barra);
          cmd.Parameters.AddWithValue("@Fecha", Fecha);
          cmd.Parameters.AddWithValue("@FP_h1", FP_h1);
          cmd.Parameters.AddWithValue("@FP_h2", FP_h2);
          cmd.Parameters.AddWithValue("@FP_h3", FP_h3);
          cmd.Parameters.AddWithValue("@FP_h4", FP_h4);
          cmd.Parameters.AddWithValue("@FP_h5", FP_h5);
          cmd.Parameters.AddWithValue("@FP_h6", FP_h6);
          cmd.Parameters.AddWithValue("@FP_h7", FP_h7);
          cmd.Parameters.AddWithValue("@FP_h8", FP_h8);
          cmd.Parameters.AddWithValue("@FP_h9", FP_h9);
          cmd.Parameters.AddWithValue("@FP_h10", FP_h10);
          cmd.Parameters.AddWithValue("@FP_h11", FP_h11);
          cmd.Parameters.AddWithValue("@FP_h12", FP_h23);
          cmd.Parameters.AddWithValue("@FP_h13", FP_h13);
          cmd.Parameters.AddWithValue("@FP_h14", FP_h14);
          cmd.Parameters.AddWithValue("@FP_h15", FP_h15);
          cmd.Parameters.AddWithValue("@FP_h16", FP_h16);
          cmd.Parameters.AddWithValue("@FP_h17", FP_h17);
          cmd.Parameters.AddWithValue("@FP_h18", FP_h18);
          cmd.Parameters.AddWithValue("@FP_h19", FP_h19);
          cmd.Parameters.AddWithValue("@FP_h20", FP_h20);
          cmd.Parameters.AddWithValue("@FP_h21", FP_h21);
          cmd.Parameters.AddWithValue("@FP_h22", FP_h22);
          cmd.Parameters.AddWithValue("@FP_h23", FP_h23);
          cmd.Parameters.AddWithValue("@FP_h24", FP_h24);
          return (int)cmd.ExecuteNonQuery() > 0;
        }
    
        public static String ObtenerCodigoBarra(String BarNom, DateTime Fecha)
        {
          using (SqlConnection cn = new SqlConnection(StrCnn))
          {
            cn.Open();
             string sql = "SELECT P.Codigo_barra "
                        + "FROM tb_barra AS B INNER JOIN tb_programa_semanal AS P ON B.codigo_barra = P.Codigo_barra "
                        + "WHERE B.descripcion_barra = @BarNom AND P.Fecha = @Fecha";
    
            SqlCommand cmd = new SqlCommand(sql, cn);
            cmd.Parameters.AddWithValue("@BarNom", BarNom);
            cmd.Parameters.AddWithValue("@Fecha", Fecha);
    
            DataTable dt = new DataTable();        
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
    
            String CodigoBarra = "";
            if (dt.Rows.Count > 0)
              CodigoBarra = dt.Rows[0]["Codigo_barra"].ToString();
    
            return CodigoBarra;
          }
        }
      }

    Verificá que sea correcta la realcion del INNER JOIN que hice entre las tablas tb_barras y tb_programa_semanal.

    No olvides los using que deben estar presentes donde crees la clase Datos:

    using System;
    using System.Data;
    using System.Data.SqlClient;

    Luego, desde un botón del form para guardar los datos:

    private void btnGuardar_Click(object sender, EventArgs e) { // Aquí cargas los datos que serán guardados String BarNom = "Nombrebar"; DateTime Fecha = new DateTime(2017, 11, 30); int FP_h1 = 1; int FP_h2 =1; int FP_h3 = 1; int FP_h4 =1; int FP_h5 =1; int FP_h6 =1; int FP_h7 =1; int FP_h8 =1; int FP_h9 =1; int FP_h10 =1; int FP_h11 =1; int FP_h12 =1; int FP_h13 =1; int FP_h14 =1; int FP_h15 =1; int FP_h16 =1; int FP_h17 =1; int FP_h18 =1; int FP_h19 =1; int FP_h20 =1; int FP_h21 =1; int FP_h22 =1; int FP_h23 =1; int FP_h24=1; bool Resultado = Datos.Guardar(BarNom, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24);

    //Aqui verificar Resultado e informás si hubo error }



    • Editado AntiWork miércoles, 25 de abril de 2018 21:46
    • Marcado como respuesta Joelbaezs jueves, 26 de abril de 2018 13:08
    miércoles, 25 de abril de 2018 20:58

Todas las respuestas

  • hola

    cuando dice linq te refieres a entity framework ? si es asi sera que tienes un edmx o es que mapeas usando code first

    porque segun como este modelando el mapping cambia la forma en definir el map al procedure

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 25 de abril de 2018 19:07
  • Hola Leandro, si con entity y me generó un edmx

    Joel Baez

    miércoles, 25 de abril de 2018 19:43
  • hola

    bien, en ese caso

    Stored Procedure in Entity Framework

    en el disenador se debe marcar para importar los procedure, analiza las opciones de los articulos que explican como generar el mapping

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 25 de abril de 2018 20:07
  • Si no te permiten crear procedimientos almacenados una alternativa es crear una  clase en c# que realice todo lo que hace el procedimiento almacenado. Aquí te dejo mi propuesta: La clase Datos reemplaza al procedimiento almacenado. 

      public static class Datos
      {
        static string StrCnn = "Cadena de conexion a la db";
    
        public static bool Guardar(String BarNom, DateTime Fecha, int FP_h1, int FP_h2, int FP_h3, int FP_h4, int FP_h5, int FP_h6, int FP_h7, int FP_h8, int FP_h9, int FP_h10, int FP_h11, int FP_h12, int FP_h13, int FP_h14, int FP_h15, int FP_h16, int FP_h17, int FP_h18, int FP_h19, int FP_h20, int FP_h21, int FP_h22, int FP_h23, int FP_h24)
        {
          bool rta = false;
          using (SqlConnection cn = new SqlConnection(StrCnn))
          {
            cn.Open();
            String Codigo_barra = ObtenerCodigoBarra(BarNom, Fecha);
            if (Codigo_barra == "")
              rta = Insert(Codigo_barra, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24, cn);
            else
              rta = Update(Codigo_barra, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24, cn);
          }
          return rta;
        }
    
        public static bool Update(String Codigo_barra, DateTime Fecha, int FP_h1, int FP_h2, int FP_h3, int FP_h4, int FP_h5, int FP_h6, int FP_h7, int FP_h8, int FP_h9, int FP_h10, int FP_h11, int FP_h12, int FP_h13, int FP_h14, int FP_h15, int FP_h16, int FP_h17, int FP_h18, int FP_h19, int FP_h20, int FP_h21, int FP_h22, int FP_h23, int FP_h24, SqlConnection cn)
        {
          string sql = "UPDATE tb_programa_semanal set FP_h1 = @FP_h1, FP_h2 = @FP_h2, FP_h3 = @FP_h3, FP_h4 = @FP_h4, FP_h5 = @FP_h5, FP_h6 = @FP_h6, FP_h7 = @FP_h7, FP_h8 = @FP_h8, FP_h9 = @FP_h9, FP_h10 = @FP_h10, FP_h11 = @FP_h11, FP_h12 = @FP_h12, FP_h13 = @FP_h13, FP_h14 = @FP_h14, FP_h15 = @FP_h15, FP_h16 = @FP_h16, FP_h17 = @FP_h17, FP_h18 = @FP_h18, FP_h19 = @FP_h19, FP_h20 = @FP_h20, FP_h21 = @FP_h21, FP_h22 = @FP_h22, FP_h23 = @FP_h23, FP_h24 = @FP_h24 "
                     + "WHERE codigo_barra = @codigo_barra AND Fecha = @Fecha";
    
          SqlCommand cmd = new SqlCommand(sql, cn);
          cmd.Parameters.AddWithValue("@FP_h1", FP_h1);
          cmd.Parameters.AddWithValue("@FP_h2", FP_h2);
          cmd.Parameters.AddWithValue("@FP_h3", FP_h3);
          cmd.Parameters.AddWithValue("@FP_h4", FP_h4);
          cmd.Parameters.AddWithValue("@FP_h5", FP_h5);
          cmd.Parameters.AddWithValue("@FP_h6", FP_h6);
          cmd.Parameters.AddWithValue("@FP_h7", FP_h7);
          cmd.Parameters.AddWithValue("@FP_h8", FP_h8);
          cmd.Parameters.AddWithValue("@FP_h9", FP_h9);
          cmd.Parameters.AddWithValue("@FP_h10", FP_h10);
          cmd.Parameters.AddWithValue("@FP_h11", FP_h11); 
          cmd.Parameters.AddWithValue("@FP_h12", FP_h23); 
          cmd.Parameters.AddWithValue("@FP_h13", FP_h13); 
          cmd.Parameters.AddWithValue("@FP_h14", FP_h14); 
          cmd.Parameters.AddWithValue("@FP_h15", FP_h15); 
          cmd.Parameters.AddWithValue("@FP_h16", FP_h16); 
          cmd.Parameters.AddWithValue("@FP_h17", FP_h17); 
          cmd.Parameters.AddWithValue("@FP_h18", FP_h18); 
          cmd.Parameters.AddWithValue("@FP_h19", FP_h19);
          cmd.Parameters.AddWithValue("@FP_h20", FP_h20); 
          cmd.Parameters.AddWithValue("@FP_h21", FP_h21); 
          cmd.Parameters.AddWithValue("@FP_h22", FP_h22); 
          cmd.Parameters.AddWithValue("@FP_h23", FP_h23); 
          cmd.Parameters.AddWithValue("@FP_h24", FP_h24);
          cmd.Parameters.AddWithValue("@codigo_barra", Codigo_barra);
          cmd.Parameters.AddWithValue("@Fecha", Fecha);
          return (int)cmd.ExecuteNonQuery() > 0;
        }
    
        public static bool Insert(String Codigo_barra, DateTime Fecha, int FP_h1, int FP_h2, int FP_h3, int FP_h4, int FP_h5, int FP_h6, int FP_h7, int FP_h8, int FP_h9, int FP_h10, int FP_h11, int FP_h12, int FP_h13, int FP_h14, int FP_h15, int FP_h16, int FP_h17, int FP_h18, int FP_h19, int FP_h20, int FP_h21, int FP_h22, int FP_h23, int FP_h24, SqlConnection cn)
        {
          String sql = "INSERT INTO tb_programa_semanal(codigo_barra, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24) VALUES (@codigo_barra, @Fecha, @FP_h1, @FP_h2, @FP_h3, @FP_h4, @FP_h5, @FP_h6, @FP_h7, @FP_h8, @FP_h9, @FP_h10, @FP_h11, @FP_h12, @FP_h13, @FP_h14, @FP_h15, @FP_h16, @FP_h17, @FP_h18, @FP_h19, @FP_h20, @FP_h21, @FP_h22, @FP_h23, @FP_h24)";
          SqlCommand cmd = new SqlCommand(sql, cn);
          cmd.Parameters.AddWithValue("@codigo_barra", Codigo_barra);
          cmd.Parameters.AddWithValue("@Fecha", Fecha);
          cmd.Parameters.AddWithValue("@FP_h1", FP_h1);
          cmd.Parameters.AddWithValue("@FP_h2", FP_h2);
          cmd.Parameters.AddWithValue("@FP_h3", FP_h3);
          cmd.Parameters.AddWithValue("@FP_h4", FP_h4);
          cmd.Parameters.AddWithValue("@FP_h5", FP_h5);
          cmd.Parameters.AddWithValue("@FP_h6", FP_h6);
          cmd.Parameters.AddWithValue("@FP_h7", FP_h7);
          cmd.Parameters.AddWithValue("@FP_h8", FP_h8);
          cmd.Parameters.AddWithValue("@FP_h9", FP_h9);
          cmd.Parameters.AddWithValue("@FP_h10", FP_h10);
          cmd.Parameters.AddWithValue("@FP_h11", FP_h11);
          cmd.Parameters.AddWithValue("@FP_h12", FP_h23);
          cmd.Parameters.AddWithValue("@FP_h13", FP_h13);
          cmd.Parameters.AddWithValue("@FP_h14", FP_h14);
          cmd.Parameters.AddWithValue("@FP_h15", FP_h15);
          cmd.Parameters.AddWithValue("@FP_h16", FP_h16);
          cmd.Parameters.AddWithValue("@FP_h17", FP_h17);
          cmd.Parameters.AddWithValue("@FP_h18", FP_h18);
          cmd.Parameters.AddWithValue("@FP_h19", FP_h19);
          cmd.Parameters.AddWithValue("@FP_h20", FP_h20);
          cmd.Parameters.AddWithValue("@FP_h21", FP_h21);
          cmd.Parameters.AddWithValue("@FP_h22", FP_h22);
          cmd.Parameters.AddWithValue("@FP_h23", FP_h23);
          cmd.Parameters.AddWithValue("@FP_h24", FP_h24);
          return (int)cmd.ExecuteNonQuery() > 0;
        }
    
        public static String ObtenerCodigoBarra(String BarNom, DateTime Fecha)
        {
          using (SqlConnection cn = new SqlConnection(StrCnn))
          {
            cn.Open();
             string sql = "SELECT P.Codigo_barra "
                        + "FROM tb_barra AS B INNER JOIN tb_programa_semanal AS P ON B.codigo_barra = P.Codigo_barra "
                        + "WHERE B.descripcion_barra = @BarNom AND P.Fecha = @Fecha";
    
            SqlCommand cmd = new SqlCommand(sql, cn);
            cmd.Parameters.AddWithValue("@BarNom", BarNom);
            cmd.Parameters.AddWithValue("@Fecha", Fecha);
    
            DataTable dt = new DataTable();        
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
    
            String CodigoBarra = "";
            if (dt.Rows.Count > 0)
              CodigoBarra = dt.Rows[0]["Codigo_barra"].ToString();
    
            return CodigoBarra;
          }
        }
      }

    Verificá que sea correcta la realcion del INNER JOIN que hice entre las tablas tb_barras y tb_programa_semanal.

    No olvides los using que deben estar presentes donde crees la clase Datos:

    using System;
    using System.Data;
    using System.Data.SqlClient;

    Luego, desde un botón del form para guardar los datos:

    private void btnGuardar_Click(object sender, EventArgs e) { // Aquí cargas los datos que serán guardados String BarNom = "Nombrebar"; DateTime Fecha = new DateTime(2017, 11, 30); int FP_h1 = 1; int FP_h2 =1; int FP_h3 = 1; int FP_h4 =1; int FP_h5 =1; int FP_h6 =1; int FP_h7 =1; int FP_h8 =1; int FP_h9 =1; int FP_h10 =1; int FP_h11 =1; int FP_h12 =1; int FP_h13 =1; int FP_h14 =1; int FP_h15 =1; int FP_h16 =1; int FP_h17 =1; int FP_h18 =1; int FP_h19 =1; int FP_h20 =1; int FP_h21 =1; int FP_h22 =1; int FP_h23 =1; int FP_h24=1; bool Resultado = Datos.Guardar(BarNom, Fecha, FP_h1, FP_h2, FP_h3, FP_h4, FP_h5, FP_h6, FP_h7, FP_h8, FP_h9, FP_h10, FP_h11, FP_h12, FP_h13, FP_h14, FP_h15, FP_h16, FP_h17, FP_h18, FP_h19, FP_h20, FP_h21, FP_h22, FP_h23, FP_h24);

    //Aqui verificar Resultado e informás si hubo error }



    • Editado AntiWork miércoles, 25 de abril de 2018 21:46
    • Marcado como respuesta Joelbaezs jueves, 26 de abril de 2018 13:08
    miércoles, 25 de abril de 2018 20:58
  • Justamente lo que necesitaba y te diste el tiempo de mostrarme como se hace te lo agradezco!

    Joel Baez

    jueves, 26 de abril de 2018 13:08
  • hola

    Pero no habias mencionado que necesitas usar linq ? el ejemplo que has aceptado usa ado.net, no tiene nada que ver con el planteo que realizas si usas un edmx

    no se soluciona con la respuesta que has aceptado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 26 de abril de 2018 13:47