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

Sql Y OleDb, ¿Como?

Estas en el tema de Sql Y OleDb, ¿Como? en el foro de .NET en Foros del Web. Que tal, Miren tengo el siguiente problema para aprender de Asp.net me baje unos ejemplos del QuickStart, y me han dado buenos resultados hasta que ...
  #1 (permalink)  
Antiguo 16/03/2005, 14:29
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 6 meses
Puntos: 0
Sql Y OleDb, ¿Como?

Que tal,

Miren tengo el siguiente problema para aprender de Asp.net me baje unos ejemplos del QuickStart, y me han dado buenos resultados hasta que me encuentro con un actualizacion o insercion en una base de datos ACCESS.

el problema es con estos parametros...

Catch Exp As SqlException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: ya existe un registro con la misma clave principal"
Else
Message.InnerHtml = "ERROR: no se pudo actualizar el registro, compruebe que los campos están rellenos correctamente"
End If
Message.Style("color") = "red"


como los declaro con Oledb, porque si lo dejo como esta me arroja error algo asi como la exception Number no es miembro de algo...



ahora el otro problema que tengo es con esto...

MyCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.NVarChar, 11))
MyCommand.Parameters.Add(New SqlParameter("@LName", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@FName", SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@Phone", SqlDbType.NChar, 12))
MyCommand.Parameters.Add(New SqlParameter("@Address", SqlDbType.NVarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@City", SqlDbType.NVarChar, 20))
MyCommand.Parameters.Add(New SqlParameter("@State", SqlDbType.NChar, 2))
MyCommand.Parameters.Add(New SqlParameter("@Zip", SqlDbType.NChar, 5))
MyCommand.Parameters.Add(New SqlParameter("@Contract", SqlDbType.NVarChar,1))

MyCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))


Yo leo bien la base de datos, la ordeno como quiero, la sumo etc. pero cuando quiero actualizar no he podido dar con la solucion, lo que he hecho es reemplazar Sqlparameter por OledbParameter, pero a pesar de que me deja pasar despues no graba, quizas mi problema este en los formatos de campos...
SqlDbType.NVarChar, 11

que no se si es correcto esto o no, tratandose de una base de ACCESS.
alguien me puede hechar una mano porfa.
hay alguna manera mas sencilla de grabar en la base de datos???




Por siaca el error que me arroja es:
System.IndexOutofRangeException :Index Was outside the bounds of the array
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein

Última edición por univercity; 16/03/2005 a las 14:36
  #2 (permalink)  
Antiguo 16/03/2005, 14:35
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Solo recuerda que si estas usando SQL server vas a usar la clase SQLClient, y si es para Access debes usar OLEDbClient... que son diferentes cosas..

Checa bien tu code friend..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 16/03/2005, 14:41
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 6 meses
Puntos: 0
Rootk, te refieres a esto,
<%@ Import Namespace="System.Data.SqlClient" %>
Ya lo cambie por esto...
<%@ Import Namespace="System.Data.Oledb" %>

Y es por eso que menciono que estoy trabajando con la base hace rato, la leo, la sumo, la ordeno, le borro datos, etc, etc.... mi problema no es la conexion, esta en el momento que hago click al actualizar o grabar dentro de ella...

Por favor Checa bien el Post Friend...

Slds.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #4 (permalink)  
Antiguo 16/03/2005, 17:19
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Cita:
Por favor Checa bien el Post Friend...
Ya lo cheque man, es que si estas trabajando con OLEDB no puedes usar SQLparameters...

Tendría que ser algo como ésto:

Cita:
MyCommand.Parameters.Add(New OleDbParameter("@Id", oledbtype.NVarChar, 11))
MyCommand.Parameters.Add(New OleDbParameter("@LName", oledbtype.VarChar, 40))
MyCommand.Parameters.Add(New OleDbParameter("@FName", oledbtype.VarChar, 20))
...
...
al igual que tu command..
Dim myCommand As OleDbCommand

Estamos de acuerdo..??
  #5 (permalink)  
Antiguo 16/03/2005, 23:02
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 6 meses
Puntos: 0
MyCommand.Parameters.Add(New OleDbParameter("@Id", oledbtype.NVarChar, 11))
MyCommand.Parameters.Add(New OleDbParameter("@LName", oledbtype.VarChar, 40))
MyCommand.Parameters.Add(New OleDbParameter("@FName", oledbtype.VarChar, 20))


mmmm, ya he hecho todos los cambios, todos los Sql por Oledb, eso es demasiado obvio Rootk...

Bueno para los que esten tratando de manejar una BD Acces con este Scripts, dí con una solucion y que al paracer tiene bastante logica, para que este codigo funcione hay que quitar todos los OledbType (les dará error si los dejan)...

B]MyCommand.Parameters.Add(New OleDbParameter("@Id", 11))
MyCommand.Parameters.Add(New OleDbParameter("@LName", 40))
MyCommand.Parameters.Add(New OleDbParameter("@FName", 20))[/B]

Ahora Rootk, mirastes un solo problema, este lo pasastes por alto...

el problema es con estos parametros...

Catch Exp As SqlException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: ya existe un registro con la misma clave principal"
Else
Message.InnerHtml = "ERROR: no se pudo actualizar el registro, compruebe que los campos están rellenos correctamente"
End If
Message.Style("color") = "red"


para que no seas tan obvio en tu respuesta, te anticipo que el SqlException esta modificado por OleDbException, pero da error porque no reconoce el Exp.Number...
Entonces para OleDb hay que hacer un cambio más que no he podido dar con el.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #6 (permalink)  
Antiguo 16/03/2005, 23:04
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 6 meses
Puntos: 0
MyCommand.Parameters.Add(New OleDbParameter("@Id", oledbtype.NVarChar, 11))
MyCommand.Parameters.Add(New OleDbParameter("@LName", oledbtype.VarChar, 40))
MyCommand.Parameters.Add(New OleDbParameter("@FName", oledbtype.VarChar, 20))


mmmm, ya he hecho todos los cambios, todos los Sql por Oledb, eso es demasiado obvio Rootk...

Bueno para los que esten tratando de manejar una BD Acces con este Scripts, dí con una solucion y que al paracer tiene bastante logica, para que este codigo funcione hay que quitar todos los OledbType (les dará error si los dejan)...

B]MyCommand.Parameters.Add(New OleDbParameter("@Id", 11))
MyCommand.Parameters.Add(New OleDbParameter("@LName", 40))
MyCommand.Parameters.Add(New OleDbParameter("@FName", 20))[/B]

Ahora Rootk, mirastes un solo problema, este lo pasastes por alto...

el problema es con estos parametros...

Catch Exp As SqlException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: ya existe un registro con la misma clave principal"
Else
Message.InnerHtml = "ERROR: no se pudo actualizar el registro, compruebe que los campos están rellenos correctamente"
End If
Message.Style("color") = "red"


para que no seas tan obvio en tu respuesta, te anticipo que el SqlException esta modificado por OleDbException, pero da error porque no reconoce el Exp.Number...
Entonces para OleDb hay que hacer un cambio más que no he podido dar con el.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #7 (permalink)  
Antiguo 16/03/2005, 23:36
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 21 años, 6 meses
Puntos: 0
Aqui hay un buen ejemplo de como Insertar a una BD Acces... basatabte mas simplificado...
http://www.campus.ncl.ac.uk/database...odeverif2.html

Slds.
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein
  #8 (permalink)  
Antiguo 17/03/2005, 09:15
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Cita:
Ahora Rootk, mirastes un solo problema, este lo pasastes por alto...

el problema es con estos parametros...
mmm, de hecho no lo pase por alto.. pero en fin..

Cita:
para que no seas tan obvio en tu respuesta, te anticipo que el SqlException esta modificado por OleDbException,
OK
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 07:08.