Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .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 (vbnet) [Seleccionar]

Imports System
Imports System.Data
Imports System.IO
Imports System.Data.SQLite
Imports System.Windows.Forms.SystemInformation
Public Class Form5
   Dim cnnl As New SQLiteConnection
   Public consulta As String
   Dim Ada As New SQLiteDataAdapter()
   Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim mySql As String
       cnnl = New SQLiteConnection("Data Source=\BACKUP\BD\CLAS_MOBILE.db;Version=3;")
       cnnl.Open()
       mySql = "SELECT * FROM INS_INSPECCIONES_MOBILE_TMP"
       DataGrid1.DataSource = RecogerConsulta(mySql)

   End Sub
   Public Function RecogerConsulta(ByVal mySql As String) As DataTable
       Dim tmpTable As New DataTable
       Try
           Ada = New SQLiteDataAdapter(mySql, cnnl)
           Ada.Fill(tmpTable)
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error")
       End Try
       Return tmpTable
   End Function
End Class

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 (vb.net) [Seleccionar]

DIM S as SqlDataAdapter
dim dt as datatable
for i = 0 to datagrid.rows.count - 1
Dim mySql as String = "INSERT INTO Tabla blablabla"
  S = New SQLiteDataAdapter(mySql, cnnl)
dt = new datatable
S.Fill(dt)
S.Update(Ctype(dt,datatable))
next


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 (csharp) [Seleccionar]
DataTable myTable =(DataTable)DataGrid1.DataSource;
           string mySql;
           SQLiteCommand _SQLiteCommand;

           SQLiteConnection  cnn = new SQLiteConnection(@"Data Source=\BACKUP\BD\CLAS_MOBILE.db;Version=3;");
           cnn.Open();
           
           SQLiteTransaction _SQLiteTransaction = cnn.BeginTransaction();
           
           foreach (DataRow myRow in myTable.Rows)
           {
               mySql = "INSERT INTO TABLA VALUES..............";
               _SQLiteCommand = new SQLiteCommand(mySql, cnn);
               _SQLiteCommand.ExecuteNonQuery();  
           }

           _SQLiteTransaction.Commit();

           cnn.Close();