Visual Basic.NET - Problema para hacer update

 
Vista:

Problema para hacer update

Publicado por Emilia (8 intervenciones) el 17/08/2004 11:17:52
Ojala me puedan orientar, se los voy a agradecer
ya probe de todo y no me graba los cambios en la tabla.... este es el codigo que tengo, algo me falta ak momento de tomar los datos y al momento de hacer el update...
Dim dt As DataTable = dbDataSet.Tables("mytabla")
Dim row As DataRow = dt.NewRow
Dim foundRows() As DataRow = dt.Select()
Dim i As Integer
' print the value of one column of each DataRow.
If entrada = True Then
For i = 0 To UBound(foundRows)
If foundRows(i)("iditem") = cadena And foundRows(i)("iditem2") = cadfinal Then
row("unit") = txtnumero.Text.Trim
row("type") = cbtipo.Text.Trim
row("price") = txtprecio.Text.Trim
row("status") = "0"
End If
Next i
dbDataAdapter.Update(dbDataSet, "mytabla")
dbDataSet.AcceptChanges()
dbConnection.Close()
Alguien pudiera decirme que esta mal.... por favor
Gracias de antemano
Emilia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema para hacer update

Publicado por Edgar (1501 intervenciones) el 17/08/2004 17:00:18
Hola..

Te recomiendo para optimizar tu código que uses el método Select que recibe dos parámetros, en el primero colocas la condición where del select y en la segunda el Order By. En otras palabras, seria algo asi

dt.Select("idItem=" + cadena + " and iditem2 = " + cadfinal, "iditem ASC")

Esto te devuelve solamente las filas que cumplen con la condición que estas pidiendo, asi que iterarás sobre muchos menos registros..

Ahora, sobre tu problema de actualización, revisa que el adaptador tenga asignado la propiedad UpdateCommand. Posiblemente el problema es que no está asignado y el adaptador no sabe que hacer para actualizarlo...

En caso de que esté asignado te recomiendo entonces que trates de hacer el cambio directamente sobre la tabla o creando una vista.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema para hacer update

Publicado por Emilia (8 intervenciones) el 17/08/2004 19:18:15
Ya probe con el dt.select pero me aparece un error (igual y me falta algo que no se..)

dbDataAdapter = New Data.SqlClient.SqlDataAdapter(CadenaSelect, dbConnection)
Dim commandBuilder As New Data.SqlClient.SqlCommandBuilder(dbDataAdapter)
dbDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
dbDataAdapter.Fill(dbDataSet, "mytabla")
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Sub
End Try
Dim dt As DataTable = dbDataSet.Tables("mytabla")
Dim row As DataRow = dt.NewRow

dt.Select("iditem =" + cadena + "and iditem2 =" + cadfinal + "idcondo ASC")
row("unit") = txtnumero.Text.Trim
row("type") = cbtipo.Text.Trim
row("price") = txtprecio.Text.Trim
dbDataAdapter.Update(dbDataSet, "mytabla")
dbDataSet.AcceptChanges()
dbConnection.Close()
El error dice que me falta alfgo enseguida de la parte de ASC en el dt.Select

Gracias de antemano
Emilia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema para hacer update

Publicado por Edgar (1501 intervenciones) el 17/08/2004 19:45:27
Debes hacer sto..

dt.Select("iditem =" + cadena + "and iditem2 =" + cadfinal, "idcondo ASC")

Tambien puedes hacer esto...

dt.Select("iditem =" + cadena + "and iditem2 =" + cadfinal, "")

Disculpa si te di el ejemplo anterior mal

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema para hacer update

Publicado por Emilia (8 intervenciones) el 17/08/2004 22:09:06
Edgar este es el error que me marca la pasar por :
dt.Select("iditem =" + cadena + "and iditem2 =" + cadfinal, "")
Excepción no controlada del tipo 'System.Data.EvaluateException' en system.data.dll
Información adicional: No se puede encontrar la columna [E2]
pienso que le falta al go a la sintaxis y espo eso que sale ese error

Saludos y gracias de nuevo por tu ayuda
Emilia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema para hacer update

Publicado por Edgar (1501 intervenciones) el 17/08/2004 22:15:53
Hola

Dejame explicarte lo que hace los parámetros de este método.. suponte que tienes una tabla pero quisieras agregarle una clausula Where... es decir, tienes la tabla con la consulta Select * from tabla, pero tu quieres Select * from tabla where codigo = 1 ORder By codigo ASC

Lo que haces entonces es llamar el método Select con el parámetro de la siguiente manera Dt.Select( "codigo=1","codigo ASC"), como verás, el primer parámetro es la clausula where y l segundo es el order by...

Lo que debes asegurarte es que la clausula Where que le estás pasando esté bien formada.. por lo que veo debes poner un espacio en el "and iditem2 =", es decir, debe estar asi " and item2 =", por otra parte, si el idotem o iditem2 son de tipo varchar, debes colocar las comillas simples para que pueda evaluar la expresión, es decir "iditem='" + cadena + "' and...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema para hacer update

Publicado por Emilia (8 intervenciones) el 18/08/2004 01:32:41
Nunca pude, en visual basic el apostrofe me lo toma como si fuera un comentario pero hice otra cosa y ya me funciono, solo concatene una cadena con la sintaxis para el update

CadenaUpdate= "update mytabla set unit = '" & txtnumero.Text.Trim & "', type = '" & cbtipo.Text.Trim & "',price = '" & txtprecio.Text.Trim & "' where iditem = '" & cadena & "' AND idbitem2 ='" & cadfinal & "'"
dbDataSet = New Data.DataSet()
dbDataAdapter = New Data.SqlClient.SqlDataAdapter(CadenaUpdate, dbConnection)
Dim commandBuilder As New Data.SqlClient.SqlCommandBuilder(dbDataAdapter)
dbDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Try
dbDataAdapter.Fill(dbDataSet, "mytabla")
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Sub
End Try
dbDataSet.AcceptChanges()
dbConnection.Close()

Saludos y gracias por tu ayuda Edgar
Emilia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema para hacer update

Publicado por Edgar (1501 intervenciones) el 18/08/2004 13:55:36
Hola

Que bueno que ya te funcionó... y disculpa por el error mio... resulta que lo que te indique con el apostrofe funciona correctamente es en C# mas no en vb

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar