Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: oscarmoal en 17 Diciembre 2013, 19:40 pm



Título: primera línea en un txt (SqlDataReader)
Publicado por: oscarmoal en 17 Diciembre 2013, 19:40 pm
Tengo un pequeño al problema, estoy cargando en un SqlDataReader el contenido de un procedimiento almacenado, para escribirlo en un archivo txt, el código funciona sin embargo la falla es que lo que se graba en el archivo corresponde del registro 2 hasta el final y no se que pasa con el registro uno, simplemente no lo graba, esto es lo que hace

|02|Sofia||Lopez|Nuñez|12/12/2013|
|03|Alejandro||Quiróz|Chávez|10/12/2013|
|04|Rosa||Ramirez|Pérez|10/12/2013|

y como tendría que quedar

|01|Oscar||Moreno|Alvarez|13/12/2013|
|02|Sofia||Lopez|Nuñez|12/12/2013|
|03|Alejandro||Quiróz|Chávez|10/12/2013|
|04|Rosa||Ramirez|Pérez|10/12/2013|

acá esta el código

Código:
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim cn As New SqlConnection("Server=OMORENO;Database=DBVentas;Integrated Security=True;")
        Dim cmd As New SqlCommand("TraerDatos", cn)
        Dim dr As SqlDataReader

        cn.Open()

        Try

            cmd.CommandType = CommandType.StoredProcedure

            dr = cmd.ExecuteReader()

            Dim strStreamW As Stream
            Dim strStreamWriter As StreamWriter

            dr.Read()

            Dim FilePath As String = "C:\Users\Oscar Moreno\Desktop\prueba.txt"

            strStreamW = File.OpenWrite(FilePath)
            strStreamWriter = New StreamWriter(strStreamW, System.Text.Encoding.UTF8)

            'AGREGANDO LA INFORMACION
           
            While dr.Read()
           
                strStreamWriter.WriteLine("|" & CStr(dr("DNIUsuario")) & "|" & campo1 & "||" & (CStr(dr("ApellidoPaterno"))) & "|" & (CStr(dr("ApellidoMaterno"))) & "|" & (CStr(dr("FechaNacimimento"))) & "|")
               
            End While

            strStreamWriter.Close()
            dr.Close()
            cn.Close()

        Catch ex As Exception

            MsgBox(ex.Message.ToString)
            cn.Close()

        End Try

    End Sub
End Class

Cualquier ayuda será muy valiosa, saludos.


Título: Re: primera línea en un txt (SqlDataReader)
Publicado por: MCKSys Argentina en 17 Diciembre 2013, 19:42 pm
No he programado en .NET nunca, pero creo que si quitas el dr.Read() que tienes suelto, arreglas el problema...

Saludos!

PD: El Read() que esta entre los DIM's..


Título: Re: primera línea en un txt (SqlDataReader)
Publicado por: oscarmoal en 17 Diciembre 2013, 19:54 pm
Tienes razón, se resolvió.