![]() |
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 |
Hola: No es suficiente con coloacar el c骴igo en el evento click del boton? igual a como si fuera un winform.. |
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. |
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 /**************************************************/ |
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 |
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 /*****************/ |
para que sirven el try/catch, disculpa mi ignorancia. Es que no te entiendo. disculpa mi lentitud |
Hola: lee primero esto, y si tienes cualquier duda luego, avisa nomas. http://es.gotdotnet.com/quickstart/howto/doc/catch.aspx |
Perdona, pero sigo sin entender!!! |
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 |
creo, creo, pero no estoy seguro si entendi. Voy a probar y te cuento. |
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 |
Hola: Catch e As Exception conexion.close ' es solo un ejemplo, objConn.close podria ser donde esta el end try??? |
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> |
:'( messagebox.show("se produjo un error") |
??? :pensando: :pensando: |
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 |
Hola: Podrias usar el customValidator pero tienes que leer un poco mas sobre VALIDACION DE DATOS EN .NET antes. |
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> |
Hola: cambia el e por otra variable, por ejemplo ex lo que pasa es que e es una variable reservada Catch ex As Exception |
bien, perfecto ya funciono......................mil gracias, cualquier duda te puedo volver a molestar. Gracias |
salio ??? :borracho: :cool: :-) |
sip espectacular............. Y vuelvo a decirte sii te puedo molestar mas adelante que de hecho asi lo creo. Gracias :arriba: :-) |
| La zona horaria es GMT -6. Ahora son las 12:33. |
Desarrollado por vBulletin® Versi髇 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.