Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Isaac_VB en 14 de Enero 2021, 22:13
-
Hola, Mi programa funciona y todo, Solamente que al momento de abrir por primera vez Form2 donde esta mi DataGridView (Tiene que pasar un logeo sencillo), Me sale un """error""" inofensivo;
https://ibb.co/gJqqY72
Estoy casi seguro que es porque al iniciar el formulario tiene que verificar y abrir el archivo donde guarda los datos de DataGridView, Pero al momento de iniciarlo por primera vez no tiene ese documento ya que se crea ese documento al momento de presionar un botón, Así que lo mas seguro seria hacer un If para que si no existe ese archivo de guardado haga uno apenas abriendo
Aquí les dejo el código tal vez sea otra cosa.
Imports System.IO
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
Form1.Show()
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim archivo_leer As StreamReader
archivo_leer = New StreamReader("./datos.txt")
While Not archivo_leer.EndOfStream
Dim cadena As String = archivo_leer.ReadLine
Dim leer As String() = cadena.Split(New Char() {";"})
dtgvProductos.Rows.Add(leer)
End While
archivo_leer.Close()
End Sub
Private Sub btcAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btcAgregar.Click
dtgvProductos.Rows.Add()
Dim CantFila = dtgvProductos.Rows.Count - 1
dtgvProductos(0, CantFila).Value = txtProducto.Text
dtgvProductos(1, CantFila).Value = txtDescripcion.Text
dtgvProductos(2, CantFila).Value = txtId.Text
dtgvProductos(3, CantFila).Value = txtMarca.Text
dtgvProductos(4, CantFila).Value = txtFragil.Text
dtgvProductos(5, CantFila).Value = txtFechaAlma.Text
dtgvProductos(6, CantFila).Value = txtFechaVenci.Text
dtgvProductos(7, CantFila).Value = txtPrecio.Text
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim pregunta As String
pregunta = MsgBox("¿Guardar datos antes de salir?")
If pregunta = vbYes Then
GuardarDatos()
Else
Me.Close()
End If
End Sub
Private Sub btnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBorrar.Click
If dtgvProductos.SelectedRows.Count = 0 Then
MessageBox.Show("Debes seleccionar la linea de datos a editar")
Else
dtgvProductos.SelectedRows(0).SetValues(txtProducto.Text, txtDescripcion.Text, txtId.Text, txtMarca.Text, txtFragil.Text, txtFechaAlma.Text, txtFechaVenci.Text, txtPrecio.Text)
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If dtgvProductos.SelectedRows.Count > 0 Then
For i As Integer = dtgvProductos.SelectedRows.Count - 1 To 0 Step -1
dtgvProductos.Rows.RemoveAt(dtgvProductos.SelectedRows(i).Index)
Next
Else
MessageBox.Show("Debes seleccionar la linea de datos a borrar")
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
GuardarDatos()
End Sub
Private Sub GuardarDatos()
Dim archivo_escritura As StreamWriter
Dim linea As String
archivo_escritura = New StreamWriter("./datos.txt")
With dtgvProductos
For y = 0 To .RowCount - 1
linea = .Rows(y).Cells("Producto").Value & ";" &
.Rows(y).Cells("Descripcion").Value & ";" &
.Rows(y).Cells("ID").Value & ";" &
.Rows(y).Cells("Marca").Value & ";" &
.Rows(y).Cells("Fragil").Value & ";" &
.Rows(y).Cells("FechaEntraAlmacen").Value & ";" &
.Rows(y).Cells("FechaDeVendicimiento").Value & ";" &
.Rows(y).Cells("Precio").Value & ";"
archivo_escritura.WriteLine(linea)
Next
MsgBox("Los datos se guardaron correctamente")
End With
archivo_escritura.Close()
End Sub
End Class
-
El mensaje de error parece aludir a que no encuentra el archivo datos.txt que parece que tienes definido en
archivo_leer = New StreamReader("./datos.txt")
Deberías comprobar que tienes el archivo creado y que la ruta es correcta. Al indicar ./datos.txt estarías aludiendo a que el archivo se encuentra en el directorio de trabajo actual que está usando Visual Basic, esto deberías comprobarlo.
¿Qué versión de VB estás usando? Esto deberías indicarlo en el título, como se explica en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 , mira ahí las recomendaciones para poner título a los temas.
Saludos