Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: proteus8 en 24 Febrero 2011, 15:40 pm



Título: Recorrer dataGrid
Publicado por: proteus8 en 24 Febrero 2011, 15:40 pm
Hola Amigos, tengo un DataGrid el cual lleno con información de una tabla de una base de datos que está en SQLite, lo que necesito es que una ves que muestro los datos en el datagrid es recorrer este datagrid e ir insertando la información de sus filas en otra tabla de la base de datos.
como se hace esto? Me pueden ayudar por favor.

Pongo el código de como lleno mi datagrid.
Código
  1. Imports System
  2. Imports System.Data
  3. Imports System.IO
  4. Imports System.Data.SQLite
  5. Imports System.Windows.Forms.SystemInformation
  6. Public Class Form5
  7.    Dim cnnl As New SQLiteConnection
  8.    Public consulta As String
  9.    Dim Ada As New SQLiteDataAdapter()
  10.    Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  11.        Dim mySql As String
  12.        cnnl = New SQLiteConnection("Data Source=\BACKUP\BD\CLAS_MOBILE.db;Version=3;")
  13.        cnnl.Open()
  14.        mySql = "SELECT * FROM INS_INSPECCIONES_MOBILE_TMP"
  15.        DataGrid1.DataSource = RecogerConsulta(mySql)
  16.  
  17.    End Sub
  18.    Public Function RecogerConsulta(ByVal mySql As String) As DataTable
  19.        Dim tmpTable As New DataTable
  20.        Try
  21.            Ada = New SQLiteDataAdapter(mySql, cnnl)
  22.            Ada.Fill(tmpTable)
  23.        Catch ex As Exception
  24.            MessageBox.Show(ex.Message, "Error")
  25.        End Try
  26.        Return tmpTable
  27.    End Function
  28. End Class
  29.  
Desde ya muchas gracias.

Se me olvidaba decir que es para una aplicación
.NET Compact Framework 2.0 para Windows CE 5.0


Título: Re: Recorrer dataGrid
Publicado por: seba123neo en 24 Febrero 2011, 17:22 pm
busca en internet que hay info, busca recorrer datagrid en .net o Loop through datagrid .net y te salen muchos codigos.


Título: Re: Recorrer dataGrid
Publicado por: .mokk. en 24 Febrero 2011, 18:35 pm
De hecho creo que es un tanto sencillo o bueno a coom lo explicas bastaria con un simple for ejemplo
Código
  1. DIM S as SqlDataAdapter
  2. dim dt as datatable
  3. for i = 0 to datagrid.rows.count - 1
  4. Dim mySql as String = "INSERT INTO Tabla blablabla"
  5.  S = New SQLiteDataAdapter(mySql, cnnl)
  6. dt = new datatable
  7. S.Fill(dt)
  8. S.Update(Ctype(dt,datatable))
  9. next
  10.  

Ya con eso podrias ir insertando los datos en otra tabla para recojer los datos en el for seria
datagrid(i,0).value.tostring
donde i = fila y 0 = columna


Título: Re: Recorrer dataGrid
Publicado por: proteus8 en 24 Febrero 2011, 19:00 pm
.mokk. , muchas gracias por responder y querer ayudarme

el problema que tengo es que la propiedad

DataGrid.rows.count

no me aparece en las aplicaciones
.NET Compact Framework

y no se cual es su similar 


Título: Re: Recorrer dataGrid
Publicado por: [D4N93R] en 24 Febrero 2011, 21:14 pm
Intentalo así:

Tienes la data que metes en el grid, bien, ahora seguro es un Collection o lo que sea, la cosa es que despues de hacer data binding contra el grid, metes el collection en el ViewState :P De esa forma (un poco digamos fea) mantienes la data INTEGRA. Cosa que luego tomas del ViewState, haces unboxing y no tienes que recorrer la tabla ni estar haciendo piruetas   :¬¬

Un saludo.


Título: Re: Recorrer dataGrid
Publicado por: proteus8 en 25 Febrero 2011, 15:00 pm
hola [D4N93R], gracias por tu respuesta y querer ayudarme, pero no entiendo mucho, es que soy principiante en en to de vb.net   :(   


Título: Re: Recorrer dataGrid
Publicado por: .::IT::. en 25 Febrero 2011, 16:00 pm
Esto deberia funcionar

Código
  1. DataTable myTable =(DataTable)DataGrid1.DataSource;
  2.            string mySql;
  3.            SQLiteCommand _SQLiteCommand;
  4.  
  5.            SQLiteConnection  cnn = new SQLiteConnection(@"Data Source=\BACKUP\BD\CLAS_MOBILE.db;Version=3;");
  6.            cnn.Open();
  7.  
  8.            SQLiteTransaction _SQLiteTransaction = cnn.BeginTransaction();
  9.  
  10.            foreach (DataRow myRow in myTable.Rows)
  11.            {
  12.                mySql = "INSERT INTO TABLA VALUES..............";
  13.                _SQLiteCommand = new SQLiteCommand(mySql, cnn);
  14.                _SQLiteCommand.ExecuteNonQuery();  
  15.            }
  16.  
  17.            _SQLiteTransaction.Commit();
  18.  
  19.            cnn.Close();