Recorrer dataGrid

Iniciado por proteus8, 24 Febrero 2011, 15:40 PM

0 Miembros y 1 Visitante están viendo este tema.

proteus8

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

seba123neo

busca en internet que hay info, busca recorrer datagrid en .net o Loop through datagrid .net y te salen muchos codigos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

.mokk.

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

proteus8

.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 

[D4N93R]

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.

proteus8

hola [D4N93R], gracias por tu respuesta y querer ayudarme, pero no entiendo mucho, es que soy principiante en en to de vb.net   :(   

.::IT::.

#6
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();
Simplemente .::IT::.