Ver Mensaje Individual
  #9 (permalink)  
Antiguo 05/09/2012, 13:28
3ricks0ul
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Duda sobre conversion de datos

Ok, va de nuevo....la funcion principal es...generar un mail con un pdf con grupos de personas sorteadas para un examen cada dia 1 de mes, parte de enviar el correo con el attachment ya esta...

Esta parte de el codigo dentro de itexsharp me lee el numero generado por un stored procedure:

Código:
Dim cmd As New SqlCommand("doppingsort", cnn)
            cmd.CommandType = CommandType.StoredProcedure

            cmd.Connection.Open()
            cmd.Parameters.AddWithValue("@L", 1)
            cmd.Parameters.AddWithValue("@U", 5)

            Using sdr As SqlDataReader = cmd.ExecuteReader()
                While sdr.Read()
                    table.AddCell(sdr(0).ToString())
                    table.AddCell(sdr(1).ToString())
                    table.AddCell(sdr(2).ToString())
                    table.AddCell(sdr(3).ToString())
                    table.AddCell(sdr(4).ToString())
                    Insertar()
                End While
                sdr.Close()
Como podran notar puse la funcion Insertar() dentro del while para que asi me inserte los registros a como los vaya leyendo para el pdf..es decir si el random de StoredProcedure me genero 4 registros que esos mismo 4 registros me los inserte en otra tabla para llevar el control de la gente que ya ah salido sorteada...

Este es el codigo de la funcion isnertar()
Código:
Public Function Insertar() As Integer
        Dim sql As String
        sql = "INSERT INTO sorting" & _
            "(id,sort_num,id_person, date, year,month) " & _
            "VALUES " & _
            "(@id,@SortNum,@Idperson, @DateSort, @YearSort,@MonthSort) "

        Using cnn As New SqlConnection(cs)
            Dim cmd As New SqlCommand(sql, cnn)

            Dim NextID As Integer = MaxId() + 1
            Dim NextSort As Integer = MaxSort() + 1
            Dim A As Integer = A + 1

            cmd.Parameters.AddWithValue("@id", NextID)
            cmd.Parameters.AddWithValue("@SortNum", NextSort)
            cmd.Parameters.AddWithValue("@Idperson", A)
            cmd.Parameters.AddWithValue("@DateSort", Date.Now)
            cmd.Parameters.AddWithValue("@YearSort", Date.Now.Year)
            cmd.Parameters.AddWithValue("@MonthSort", Date.Now.Month)

            cnn.Open()
            Dim t As Integer = Convert.ToInt32(cmd.ExecuteScalar())
            Return t
        End Using
    End Function
En esta parte:

Código:
Dim NextSort As Integer = MaxSort() + 1
Que a su vez es llamada esta funcion:

Código:
Public Function MaxSort() As Integer
        Dim sql As String = "SELECT ISNULL(MAX(sort_num),0)" & _
            "FROM sorting"
        Using cnn As New SqlConnection(cs)
            Dim cmd As New SqlCommand(sql, cnn)
            cnn.Open()
            Dim h As Integer = Convert.ToInt32(cmd.ExecuteScalar())
            Return h
        End Using

    End Function
Quiero que en esa columna que es la de "sort_num" me inserte el mismo ID o mismo numero para el conjunto, de registros traídos por mi stored procedure, ejemplo:

El programa me genera 2 personas, osea 2 registros y se tengan que insertar 2 registros en la tabla sorting mediante la funcion insertar(), entonces yo quiero que el ID sea el mismo para esas 2 personas....espero haberme explicado bien