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