Foros del Web » Programación para mayores de 30 ;) » .NET »

Comparar columna datagrid con columna base de datos

Estas en el tema de Comparar columna datagrid con columna base de datos en el foro de .NET en Foros del Web. Hola a todos...necesito comparar una columna de un datagrid con una columna que tengo en mi base de datos, de tal manera que si la ...
  #1 (permalink)  
Antiguo 05/04/2011, 10:49
 
Fecha de Ingreso: marzo-2011
Ubicación: Colombia
Mensajes: 17
Antigüedad: 13 años, 1 mes
Puntos: 0
Comparar columna datagrid con columna base de datos

Hola a todos...necesito comparar una columna de un datagrid con una columna que tengo en mi base de datos, de tal manera que si la columna del datagrid es igual a la columna que tengo en la bd me ACTUALICE la tabla ('tabla1'); y si No son iguales, entonces me debe GUARDAR los datos del datagrid en otra tabla('tabla2').

Para más detalle:
La tabla1 es la que comparo con el datagrid y es en la que se debe ACTUALIZAR
La tabla2 es en la que debo GUARDAR en el caso que la columna del datagrid sea diferente a la columna de la tabla1.

Mi problema es hacer la comparación de las columnas para crear el condicional

Estoy trabajando con vb.net y mi db es Mysql...el código que estoy manejando es el siguiente

Código vb:
Ver original
  1. Private Sub btnTerminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTerminar.Click
  2.         Dim num As String
  3.         Dim val As Integer
  4.         val = VALOR.Text
  5.         num = preparar.Text
  6.  
  7.         menu_diario.grilla_menu.CurrentRow.Cells(3).Value = num
  8.         menu_diario.grilla_menu.CurrentRow.Cells(4).Value = val
  9.  
  10.  
  11.         Dim cont As String
  12.         For i = 0 To grilla_productos.Rows.Count - 1
  13.             cont = grilla_productos.CurrentRow.Cells(3).Value
  14.  
  15.             Dim comando1 As New MySQLDriverCS.MySQLCommand
  16.             comando1.Connection = cnn
  17.             comando1.CommandType = CommandType.StoredProcedure
  18.             comando1.CommandText = "select * FROM detalle_comp1"
  19.  
  20.             Dim cursor2 As New MySQLDriverCS.MySQLDataAdapter
  21.             Dim dataset2 As New DataSet
  22.  
  23.             With cursor2
  24.                 .SelectCommand = comando1
  25.                 .Fill(dataset2, "t_detalle_comp1")
  26.             End With
  27.  
  28.             Dim dr As System.Data.IDataReader
  29.             dr = comando1.ExecuteReader()
  30.  
  31.             While dr.Read
  32.                 If cont = dr("cantidad") Then
  33.                     Dim id, medi, cant, prec As String
  34.                     For d = 0 To grilla_productos.Rows.Count - 1
  35.  
  36.                         id = grilla_productos.Rows(d).Cells(0).Value()
  37.                         medi = grilla_productos.Rows(d).Cells(2).Value()
  38.                         cant = grilla_productos.Rows(d).Cells(3).Value()
  39.                         prec = grilla_productos.Rows(d).Cells(4).Value()
  40.  
  41.                         Dim modificar As New MySQLDriverCS.MySQLCommand
  42.                         modificar.Connection = cnn
  43.                         modificar.CommandType = CommandType.StoredProcedure
  44.                         modificar.CommandText = "UPDATE detalle_comp1 SET medida = '" & medi & "',cantidad='" & cant & "',precio = '" & prec & "' WHERE id_detalle='" & id & "'"
  45.                         modificar.ExecuteNonQuery()
  46.                     Next
  47.                     Me.Close()
  48.  
  49.                 Else
  50.                     Dim id2, comp2, ingr2, medi2, cant2, prec2 As String
  51.                     For c = 0 To grilla_productos.Rows.Count - 1
  52.  
  53.                         id2 = grilla_productos.Rows(c).Cells(0).Value()
  54.                         comp2 = menu_diario.grilla_menu.CurrentRow.Cells(1).Value()
  55.                         ingr2 = grilla_productos.Rows(c).Cells(1).Value()
  56.                         medi2 = grilla_productos.Rows(c).Cells(2).Value()
  57.                         cant2 = grilla_productos.Rows(c).Cells(3).Value()
  58.                         prec2 = grilla_productos.Rows(c).Cells(4).Value()
  59.  
  60.                         Dim guardar As New MySQLDriverCS.MySQLCommand
  61.                         guardar.Connection = cnn
  62.                         guardar.CommandType = CommandType.StoredProcedure
  63.                         guardar.CommandText = "INSERT INTO detalle_comp2 VALUES ('" & id2 & "','" & comp2 & "','" & ingr2 & "','" & medi2 & "','" & cant2 & "','" & prec2 & "')"
  64.                         guardar.ExecuteNonQuery()
  65.                     Next
  66.                     Me.Close()
  67.  
  68.                 End If
  69.  
  70.             End While
  71.         Next
  72.  
  73.     End Sub
  #2 (permalink)  
Antiguo 05/04/2011, 11:55
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Comparar columna datagrid con columna base de datos

Hola darco1103

Lo primero que se me ocurre es lo siguiente:

Hacer un Select Count para ver si existe la columna.

Select column_name from columns where table_schema =
'BaseDeDatos' and table_name='TuTabla';


en colum_name poner la columna de tu datagrid, entonces contará las columnas con ese nombre de la tabla que le indiques, dependiendo del resultado ya sea 0 ó 1 realizas tus operaciones.

Quizás y exista alguna otra solución mas simple pero es lo primero que se me vino a la mente.

Espero y te sirva. Saludos!
__________________
http://ka0stj.wordpress.com/
  #3 (permalink)  
Antiguo 05/04/2011, 13:24
 
Fecha de Ingreso: marzo-2011
Ubicación: Colombia
Mensajes: 17
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Comparar columna datagrid con columna base de datos

Me gustaria intentar con eso pero no se en donde!
  #4 (permalink)  
Antiguo 05/04/2011, 13:46
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Comparar columna datagrid con columna base de datos

Antes de realizar cualquiera de las operaciones, incluso en el evento click que pegaste de código lo puedes hacer al inicio.
__________________
http://ka0stj.wordpress.com/

Etiquetas: columna, datagrid
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:44.