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

Ayuda con VB .net

Estas en el tema de Ayuda con VB .net en el foro de .NET en Foros del Web. Hola a todos, he retomado el .net, y tengo ya un problema en visual Studio .net: tengo un form, que se llama usuarios, detro de ...
  #1 (permalink)  
Antiguo 30/01/2003, 18:05
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
Ayuda con VB .net

Hola a todos, he retomado el .net, y tengo ya un problema
en visual Studio .net:

tengo un form, que se llama usuarios, detro de este tengo
4 controles (login,password, password2, nombre y boton),
debidamente validados y comparados.

ahora como hago para que cuando presione el boton, vaya a
la bbdd (Access),use la tabla usuarios, verifique si el
usuario existe.
si existe, envie un mensaje en la misma pagina de error, y
si no existe que lo inserte.

Eso creo que es facil, pero no se hacerlo con asp .net en
el entorno de Visual studio .net

De ante mano Gracias
  #2 (permalink)  
Antiguo 30/01/2003, 20:39
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

No es suficiente con coloacar el c骴igo en el evento click del boton? igual a como si fuera un winform..
  #3 (permalink)  
Antiguo 31/01/2003, 05:27
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
Pedon, y gracias por tu respuesta, pero lo que necesito es primero que nada:

.- Insertar un registro en un BBDD, Access, por .net


Te cuento, he buscado en algunas paginas y los ejemplo los copio, pero no me dan resultado.


Asi que sigo averiguando.
  #4 (permalink)  
Antiguo 31/01/2003, 09:26
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

Aqui tienes un ejemplo de acceso a una BD Access en .NET
fijate solo en la forma de conectarse.. no en la forma de llenar
el dataset (que es una prueba para hacer una paginaci髇 personalizada).

/**********************************************/
Imports System.Data.OleDb
Public Class foro
Inherits System.Web.UI.Page
Protected WithEvents dgPreguntas As System.Web.UI.WebControls.DataGrid

Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data.mdb") & ";"
Dim cnnMoviplus As New OleDbConnection(strConnection)
Public currentIndex As Integer = 0
Dim pageSize As Integer = 2


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim orderSQL As String = "SELECT * FROM preguntas"
Dim daEstablecimientos As OleDbDataAdapter = New OleDbDataAdapter(orderSQL, cnnMoviplus)
Dim dsEstablecimientos As DataSet = New DataSet()
daEstablecimientos.Fill(dsEstablecimientos, currentIndex, pageSize, "Establecimientos")
dgPreguntas.DataSource = dsEstablecimientos
dgPreguntas.DataBind()
End Sub

/**************************************************/

趌tima edici髇 por Henry Zapata; 31/01/2003 a las 09:30
  #5 (permalink)  
Antiguo 31/01/2003, 10:11
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
Henrry, ya logre que se insertara un registro (en oracle), pero ahora necesito hacer un par de validaciones:

.- Que si el Registro existe

supongamos:

Tengo el Form, Login y password, que tengo que poner si el usuario trata de inscribirse y su login ya existe.

<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="aa.aspx.vb" Inherits="TCCUOTAS.aa" Debug="true"%>
<HTML>
<script runat="server">
Sub addusu_click(obj As object, e As eventargs)
if ispostback() then
Dim objConn As New OleDbConnection ("Provider=MSDAORA.1;Password=clcabrer;User ID=clcabrer;Data Source=ccabrera")
If(Page.IsValid)
Dim sSQL, Resul as string
sSQL = "Insert into usu (USUARIO,PASSWORD) values ('" & login.text & "','" & password.text & "')"
Dim objCmd As New OleDbCommand (sSQL, objConn)
objConn.open
resul= objCmd.ExecuteNonQuery()
if resul="" then
response.write ("Registro agregado")
else
response.write ("Registro no agregado")
End if
else
response.write ("Registro no agregado")
end if
end if
obj.Connection.Close()
End sub
</script>
<body>
<form id="Form1" runat="server">
Insertar nuevo cliente:
<br>
<br>
<hr>
Nombre:
<ASP:TEXTBOX id="login" runat="Server" AutoPostBack="True"></ASP:TEXTBOX><br>
password:
<ASP:TEXTBOX id="password" runat="Server"></ASP:TEXTBOX><br>
<ASP:BUTTON id="Enviar" onclick="addusu_click" runat="Server" Text="Enviar"></ASP:BUTTON><br>
<hr>
</form>
</body>
</HTML>


Este cogi no me sirve, porque me devuelve este error.


ORA-00001: restricci髇 鷑ica (CLCABRER.PK_USU) violada
Descripci贸n: Excepci贸n no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener m谩s informaci贸n acerca del error y d贸nde se origin贸 en el c贸digo.

Detalles de la excepci贸n: System.Data.OleDb.OleDbException: ORA-00001: restricci髇 鷑ica (CLCABRER.PK_USU) violada


Como lo hago para manejar este error, que no me aprezca en pantalla, pero si que aparezca un mensaje "Error:Usuario ya existe"

Algo asi.


Gracias
  #6 (permalink)  
Antiguo 31/01/2003, 10:21
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

Puedes usar el try/catch.. Aqui un ejemplo

/*********************/
Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click


Try
Dim modelo As New Modelo()
modelo.nombre = txtNombre.Text
modeloJoyaDB.InsertarModeloJoya(modelo)
dgModelo.DataSource = modeloJoyaDB.listarModeloJoya.Tables(0)
Catch ex As SqlException
MessageBox.Show(ex.Message, "Informaci髇 del Modelo de Joya", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Catch ex As Exception
MessageBox.Show(ex.Message, "Informaci髇 del Modelo de Joya", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Finally
txtNombre.Focus()
txtNombre.Clear()
intCodigoModelo = 0
End Try
End Sub

/*****************/
  #7 (permalink)  
Antiguo 31/01/2003, 10:34
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
para que sirven el try/catch, disculpa mi ignorancia.

Es que no te entiendo.


disculpa mi lentitud
  #8 (permalink)  
Antiguo 31/01/2003, 10:42
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

lee primero esto, y si tienes cualquier duda luego, avisa nomas.

http://es.gotdotnet.com/quickstart/howto/doc/catch.aspx
  #9 (permalink)  
Antiguo 31/01/2003, 10:46
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
Perdona, pero sigo sin entender!!!
  #10 (permalink)  
Antiguo 31/01/2003, 10:54
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

El try/catch se utiliza para manejar los errores (Aunque deberia ser la ultima opcion a usar). Todos los lenguajes siempre tienen una forma de manejar errores, en VB 6.0 era el ON ERROR GO TO, en JAVA try/catch y en .NET es try/catch tambien.

Try

'Aqui escribes el codigo que PUEDE producir error
insertando datos...
conexion.commit

Catch e As Exception

'Aqui lo que quieres mostrar al ocurrir el error.
conexion.rollback
messagebox.show("se produjo un error")

Finally

'Aqui pones lo que siempre se ejecutara no importando si
'hubo o no un error
conexion.close

End Try
  #11 (permalink)  
Antiguo 31/01/2003, 11:02
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
creo, creo, pero no estoy seguro si entendi.


Voy a probar y te cuento.
  #12 (permalink)  
Antiguo 31/01/2003, 11:16
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
no me resulto, podrias decrime en que vaya esta cosa....


<HTML>
<script runat="server">
Sub addusu_click(obj As object, e As eventargs)
if ispostback() then
Dim objConn As New OleDbConnection ("Provider=MSDAORA.1;Password=clcabrer;User ID=clcabrer;Data Source=ccabrera")
Dim sSQL, Resul as string
sSQL = "Insert into usu (USUARIO,PASSWORD) values ('" & login.text & "','" & password.text & "')"
Dim objCmd As New OleDbCommand (sSQL, objConn)
objConn.open
try
'Aqui escribes el codigo que PUEDE producir error
resul= objCmd.ExecuteNonQuery
message.show("Registro Insertado")
Catch
'Aqui lo que quieres mostrar al ocurrir el error.
message.show("se produjo un error")
Finally
'Aqui pones lo que siempre se ejecutara no importando si hubo o no un error
conexion.close
End if
End sub

</script>


Gracias
  #13 (permalink)  
Antiguo 31/01/2003, 11:23
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

Catch e As Exception

conexion.close ' es solo un ejemplo, objConn.close podria ser

donde esta el end try???
  #14 (permalink)  
Antiguo 31/01/2003, 11:30
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
Bueno lo pobre, lo corregi, y me dice:

L胈nea 14: 'Aqui escribes el codigo que PUEDE producir error
L胈nea 15: resul= objCmd.ExecuteNonQuery
L胈nea 16: message.show("Registro Insertado") <-- aca
L胈nea 17: Catch e As Exception
L胈nea 18: 'Aqui lo que quieres mostrar al ocurrir el error.


y este es el codigo:

<HTML>
<script runat="server">
Sub addusu_click(obj As object, e As eventargs)
if ispostback() then
Dim objConn As New OleDbConnection ("Provider=MSDAORA.1;Password=clcabrer;User ID=clcabrer;Data Source=ccabrera")
Dim sSQL, Resul as string
sSQL = "Insert into usu (USUARIO,PASSWORD) values ('" & login.text & "','" & password.text & "')"
Dim objCmd As New OleDbCommand (sSQL, objConn)
objConn.open
try
'Aqui escribes el codigo que PUEDE producir error
resul= objCmd.ExecuteNonQuery
message.show("Registro Insertado")
Catch e As Exception
'Aqui lo que quieres mostrar al ocurrir el error.
messagebox.show("se produjo un error")
Finally
'Aqui pones lo que siempre se ejecutara no importando si hubo o no un error
objConn.close
End Try
End if
End sub

</script>
  #15 (permalink)  
Antiguo 31/01/2003, 11:35
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0


messagebox.show("se produjo un error")
  #16 (permalink)  
Antiguo 31/01/2003, 11:36
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
???
  #17 (permalink)  
Antiguo 31/01/2003, 11:41
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

Uhm.. el ejemplo que te di era solo para que vieras el uso del try cach.. el error esta en usar showmessge para mostrar el mensaje
cuando estamos en un script de servidor.

Lo que yo haria es poner una etiqueta que la haria invisible o visible segun exista el error

Label1.Text = "error"
Label1.Visible = True
  #18 (permalink)  
Antiguo 31/01/2003, 11:45
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

Podrias usar el customValidator pero tienes que leer un poco mas sobre VALIDACION DE DATOS EN .NET antes.
  #19 (permalink)  
Antiguo 31/01/2003, 11:46
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
ya corregui el error, coloque el Label1, ahora me da error en esta linea.


Catch e As Exception este es el codigo ahora:


<script runat="server">
Sub addusu_click(obj As object, e As eventargs)
if ispostback() then
Dim objConn As New OleDbConnection ("Provider=MSDAORA.1;Password=clcabrer;User ID=clcabrer;Data Source=ccabrera")
Dim sSQL, Resul as string
sSQL = "Insert into usu (USUARIO,PASSWORD) values ('" & login.text & "','" & password.text & "')"
Dim objCmd As New OleDbCommand (sSQL, objConn)
objConn.open
try
'Aqui escribes el codigo que PUEDE producir error
resul= objCmd.ExecuteNonQuery
label1.Text="se produjo un error"
Label1.visible=true
Catch e As Exception
'Aqui lo que quieres mostrar al ocurrir el error.
label1.Text="Se produjo un error"
Label1.visible=true

Finally
'Aqui pones lo que siempre se ejecutara no importando si hubo o no un error
objConn.close
End Try
End if
End sub

</script>
  #20 (permalink)  
Antiguo 31/01/2003, 11:55
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
Hola:

cambia el e por otra variable, por ejemplo ex
lo que pasa es que e es una variable reservada

Catch ex As Exception
  #21 (permalink)  
Antiguo 31/01/2003, 12:08
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
bien, perfecto ya funciono......................mil gracias, cualquier duda te puedo volver a molestar.


Gracias
  #22 (permalink)  
Antiguo 31/01/2003, 12:10
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antig黣dad: 23 a駉s, 7 meses
Puntos: 0
De acuerdo

salio ???
  #23 (permalink)  
Antiguo 31/01/2003, 12:11
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicaci髇: Santiago de Chile
Mensajes: 367
Antig黣dad: 22 a駉s, 9 meses
Puntos: 0
sip espectacular.............

Y vuelvo a decirte sii te puedo molestar mas adelante que de hecho asi lo creo.



Gracias
Atenci髇: Est醩 leyendo un tema que no tiene actividad desde hace m醩 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:21.