Agregar una fila en sql

27/01/2005 - 15:32 por Traveceras | Informe spam
Mis estimados:

tengo este problema.

yo muestro en un grid la informacion de una tabla de sql,
y cuando llamo a la rutina para grabar una fila nueva. en
el grid se va mostrando la informacion .. pero cuando
salgo de ese modulo y vuelvo a entrar no me aparece
ninguna fila de las q he creado..

alguna sugerencia... o un tip q me diga como guardar una
fila correctamente..


de antemano.. muchisimas gracias.. foro.


Carlos Traveceras
Sistemas
Grupo Premier

Preguntas similare

Leer las respuestas

#1 Ivan Pascual
27/01/2005 - 15:43 | Informe spam
Hola Traveceras!!
Imagino cuando llenas el grid lo llenas de un DataSet.
Al volver al modulo donde esta el grid que has insertado filas, seguramente
estas volviendo a llenar el grid y lo llena con los datos de DataSet.

Dos cosas:
Controlas que no llenes el grid desde el dataSet cada vez que entras al
modulo.
O
Llenas el DataSet con los cambios realizados. En el momento de llenar el
Grid llenas el DataSet.

No se si puede ser ese el problema... verificalo.
Ya me diras...

Ivan Pascual
Respuesta Responder a este mensaje
#2 Traveceras
28/01/2005 - 04:25 | Informe spam
Hola Ivan.. gracias por tu sugerencia.. pero creo q no me
explique bien..

esto es lo q tengo..

a una tabla le creo una nueva fila.

Dim nueva_fila As Data.DataRow
nueva_fila = dbDataSet.Tables("Accesos").NewRow
dbDataSet.Tables("Accesos").Rows.Add(nueva_fila)

a x le asigno el valor de mi fila creada

x = dbDataSet.Tables("Accesos").Rows.Count - 1

aqui le asigno a la fila valores tomados de unos textbox y
una variable..

dbDataSet.Tables("Accesos").Rows(x).Item
("Usuario") = Trim(TextBox1.Text)
dbDataSet.Tables("Accesos").Rows(x).Item("nombre")
= Trim(TextBox3.Text)
dbDataSet.Tables("Accesos").Rows(x).Item("passw")
= Trim(TextBox2.Text)
dbDataSet.Tables("Accesos").Rows(x).Item
("atareas") = SoN1
dbDataSet.Tables("Accesos").Rows(x).Item
("etareas") = SoN2
dbDataSet.Tables("Accesos").Rows(x).Item
("ttareas") = SoN3
dbDataSet.Tables("Accesos").Rows(x).Item("ausua")
= SoN4
dbDataSet.Tables("Accesos").Rows(x).Item("otros")
= SoN5
dbDataSet.Tables("Accesos").Rows(x).Item("falta")
= fechas

hasta aqui me muestra todo perfecto.. ya q en el grid.. me
aparece la informacion en la fila q acabo de crear
y por ultimo le digo con esta instruccion q me acutalize
la tabla..


dbDataAdapter.Update(dbDataSet, NombreTabla)
dbDataSet.AcceptChanges()


pero cuando vuelvo a llamar al form..no me muestra ninguna
fila de las q se creanron en la sesion anterior..

segun yo.. tengo todo bien..

q crees q sea??
te agradeceria me ayudaras

de antemano .. gracias otra vez

Carlos Velazquez Traveceras
Guadalajara jalisco Mexico



Hola Traveceras!!
Imagino cuando llenas el grid lo llenas de un DataSet.
Al volver al modulo donde esta el grid que has insertado


filas, seguramente
estas volviendo a llenar el grid y lo llena con los datos


de DataSet.

Dos cosas:
Controlas que no llenes el grid desde el dataSet cada vez


que entras al
modulo.
O
Llenas el DataSet con los cambios realizados. En el


momento de llenar el
Grid llenas el DataSet.

No se si puede ser ese el problema... verificalo.
Ya me diras...

Ivan Pascual


.

Respuesta Responder a este mensaje
#3 Ivan Pascual
28/01/2005 - 10:39 | Informe spam
Ahora tengo mas informacion que antes...
De todas maneras yo lo haria de otra forma... a ver que te parece...

Tienes Un DataSet
Tienes un DataAdpater
Te creas un SqlCommand
A este DataCommand le vas asignar una instruccion Sql de INSERT a la tabla
que necesitas.
Como en la select necesitaras parametros le añades los parametros al
DataCommand
Ejecutas el SqlCommand
Llenas el DataAdapter
Te creas un DataRow y lo vas llenando con los nuevos regs.
Llamas al Update del DataAdapter
Mas o menos así...

Dim cmdInsert as SqlCommand = SqlConn.CreateCommand()

cmdInsert.CommandType = CommandType.Text
cmdInsert.CommandText = "INSERT INTO Tabla (Campo1, Campo2) VALUES (@Param1,
@Param2)"

cmdInsert.Parametrs.add("@Param1", SqlDbType.NVarchar)
cmdInsert.Parametrs.add("@Param2", SqlDbType.NVarchar)

DataAdpater.InsertCommand = cmdInsert
DataAdpater.Fill

Dim Dr as DataRow = DataSet.Tables(Tabla).NewRow()

Dr(0) = txtCampo0
Dr(1)= txtCampo1

DataSet.Tables("Tabla").Rows.Add(dr)

DataAdapter.Update(DataSet, "Nombre")

Ya esta Dentro ... pruebalo a ver... Dime que tal
Ivan Pascual
Respuesta Responder a este mensaje
#4 Traveceras
29/01/2005 - 05:33 | Informe spam
Q Te puedo decir..

Muchas gracias.. funciona a la perfeccion..

abusando de tu confianza..

ahora en este grid. (q ya se muestra correctamente)
necesito saber el numero de fila .. cuando se da doble
clik sobre alguna celda

yo estoy usando esta funcion q me encontre en la red..
pero no me funciona...

Private Sub Grid2_Muoseup(ByVal sender As Object, ByVal
e As System.Windows.Forms.MouseEventArgs) Handles
TabPage2.MouseUp
Dim pt = New Point(x, y)
Dim hti As DataGrid.HitTestInfo = grid2.HitTest(pt)

If hti.Type = DataGrid.HitTestType.Cell Then
MessageBox.Show(grid2(hti.Row,
hti.Column).ToString())
Else
If hti.Type =
DataGrid.HitTestType.ColumnHeader Then 'assumes datasource
is a dataview
MessageBox.Show(CType(grid2.DataSource,
DataView).Table.Columns(hti.Column).ToString())
End If
End If


alguna sugerencia..

de cual quier forma..
gracias..




Ahora tengo mas informacion que antes...
De todas maneras yo lo haria de otra forma... a ver que


te parece...

Tienes Un DataSet
Tienes un DataAdpater
Te creas un SqlCommand
A este DataCommand le vas asignar una instruccion Sql de


INSERT a la tabla
que necesitas.
Como en la select necesitaras parametros le añades los


parametros al
DataCommand
Ejecutas el SqlCommand
Llenas el DataAdapter
Te creas un DataRow y lo vas llenando con los nuevos regs.
Llamas al Update del DataAdapter
Mas o menos así...

Dim cmdInsert as SqlCommand = SqlConn.CreateCommand()

cmdInsert.CommandType = CommandType.Text
cmdInsert.CommandText = "INSERT INTO Tabla (Campo1,


Campo2) VALUES (@Param1,
@Param2)"

cmdInsert.Parametrs.add("@Param1", SqlDbType.NVarchar)
cmdInsert.Parametrs.add("@Param2", SqlDbType.NVarchar)

DataAdpater.InsertCommand = cmdInsert
DataAdpater.Fill

Dim Dr as DataRow = DataSet.Tables(Tabla).NewRow()

Dr(0) = txtCampo0
Dr(1)= txtCampo1

DataSet.Tables("Tabla").Rows.Add(dr)

DataAdapter.Update(DataSet, "Nombre")

Ya esta Dentro ... pruebalo a ver... Dime que tal
Ivan Pascual


.

Respuesta Responder a este mensaje
#5 Traveceras
29/01/2005 - 17:01 | Informe spam
Se me esta ocurriendo algo..

deja lo intento y te aviso..


Q Te puedo decir..

Muchas gracias.. funciona a la perfeccion..

abusando de tu confianza..

ahora en este grid. (q ya se muestra correctamente)
necesito saber el numero de fila .. cuando se da doble
clik sobre alguna celda

yo estoy usando esta funcion q me encontre en la red..
pero no me funciona...

Private Sub Grid2_Muoseup(ByVal sender As Object,


ByVal
e As System.Windows.Forms.MouseEventArgs) Handles
TabPage2.MouseUp
Dim pt = New Point(x, y)
Dim hti As DataGrid.HitTestInfo = grid2.HitTest


(pt)

If hti.Type = DataGrid.HitTestType.Cell Then
MessageBox.Show(grid2(hti.Row,
hti.Column).ToString())
Else
If hti.Type =
DataGrid.HitTestType.ColumnHeader Then 'assumes


datasource
is a dataview
MessageBox.Show(CType(grid2.DataSource,
DataView).Table.Columns(hti.Column).ToString())
End If
End If


alguna sugerencia..

de cual quier forma..
gracias..




Ahora tengo mas informacion que antes...
De todas maneras yo lo haria de otra forma... a ver que


te parece...

Tienes Un DataSet
Tienes un DataAdpater
Te creas un SqlCommand
A este DataCommand le vas asignar una instruccion Sql




de
INSERT a la tabla
que necesitas.
Como en la select necesitaras parametros le añades los


parametros al
DataCommand
Ejecutas el SqlCommand
Llenas el DataAdapter
Te creas un DataRow y lo vas llenando con los nuevos




regs.
Llamas al Update del DataAdapter
Mas o menos así...

Dim cmdInsert as SqlCommand = SqlConn.CreateCommand()

cmdInsert.CommandType = CommandType.Text
cmdInsert.CommandText = "INSERT INTO Tabla (Campo1,


Campo2) VALUES (@Param1,
@Param2)"

cmdInsert.Parametrs.add("@Param1", SqlDbType.NVarchar)
cmdInsert.Parametrs.add("@Param2", SqlDbType.NVarchar)

DataAdpater.InsertCommand = cmdInsert
DataAdpater.Fill

Dim Dr as DataRow = DataSet.Tables(Tabla).NewRow()

Dr(0) = txtCampo0
Dr(1)= txtCampo1

DataSet.Tables("Tabla").Rows.Add(dr)

DataAdapter.Update(DataSet, "Nombre")

Ya esta Dentro ... pruebalo a ver... Dime que tal
Ivan Pascual


.



.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida