sábado, 15 de junio de 2013

Guardar un registro en asp.net

Guardar un registro en asp.net
By Diógenes Amaury MS

Saludos amigo@s

Hoy veremos como guardar un registro desde asp.net, para ello utilizaremos a sql server 2008 como manejador de base de datos.

Primero debemos crear una base de datos que en mi caso la nombre ControlEstudiante, una tabla llamada Estudiantes con la siguiente estructura:

       [MATEST] [varchar](15) NOT NULL
[NOMEST] [varchar](50) NULL
[APEEST] [varchar](50) NULL
[DIREST] [varchar](100) NULL





Como pueden observar en la gráfica anterior tenemos creada la interfaz con los siguientes textbox:
txtmatest
txtnomest
txtapeest
txtdirest

Ahora vamos a la propiedad Enabled de cada uno de los objetos y la cambiamos a false.
Para hacer esto simplemente seleccione el objeto y valla a la ventana de propiedades, en caso de que no este disponible pulse la tecla F4.

En el botón Nuevo agregue el siguiente código:
        Session("esnuevo") = "si"
        txtmatest.Enabled = True
        txtnomest.Enabled = True
        txtapeest.Enabled = True
        txtdirest.Enabled = True

Lo que hicimos fue declarar una variable de sesión para controlar luego si insertamos o actualizamos el registro.

agregamos la instancia con la base de datos que deseamos trabajar, para nuestro ejempoo es sql server.

Imports System.Data
Imports System.Data.SqlClient

Declaramos la conexion a la base de datos.

 Dim conexion As New SqlConnection("Data Source=USER-PC\SQLEXPRESS;Initial Catalog=ControlEstudiante;Integrated Security=True")

En el botón guardar declaramos el siguiente código.

 Dim QUERY As String
 If Session("esnuevo") = "si" Then
            QUERY = "INSERT INTO ESTUDIANTES (MATEST,NOMEST,APEEST,DIREST)" & _
                "VALUES(" & Val(txtmatest.Text) & ",'" & _
                txtnomest.Text & "','" & _
                 txtapeest.Text & "','" & _
                 txtdirest.Text & "')"
 Else
          QUERY = "UPDATE  ESTUDIANTES SET NOMEST ='" & txtnomest.Text & "', APEEST ='" & txtapeest.Text & "', DIREST = '" & txtdirest.Text & "' WHERE  MATEST LIKE '" & txtmatest.Text & "'"
        End If
        conexion.Open()
        Dim cmd1 As New SqlCommand()
        cmd1.Connection = conexion
        cmd1.CommandType =
        cmd1.CommandText = QUERY

        cmd1.ExecuteNonQuery()
        conexion.Close()
        'txtmatest.Enabled = False
        'txtnomest.Enabled = False
        'txtapeest.Enabled = False
        'txtdirest.Enabled = False
        Session("esnuevo") = "NO"





Noten que utilizamos  Session("esnuevo") para determinar si insertamos o actualizamos el registro, luego utilizamos la variable QUERY que será alimentada dependiendo del valor Session("esnuevo").
SqlCommand se encarga de ejecutar dicha sentencia sql.

hasta la próxima.








martes, 4 de junio de 2013

Hacer Login en .Net



By Diógenes Amaury MS

Hoy explicaremos la forma de hacer login en .Net, es importante destacar que este código puede ser utilizado tanto en aplicaciones de escritorios (windowsForm) como en aplicaciones web(webForm) con prácticamente el mismo código.
En el día de hoy realizaremos un login en asp.net, de manera que cuando el usuario escriba su usuario y contraseña tenga acceso a al sistema.
Código en vb.net
Importamos la clase  Data para poder conectarnos a un base de datos

Imports System.Data
Imports System.Data.SqlClient

Rem Declaramos una variable que almacenara la conexion a la base de datos.

Dim conexion As New SqlConnection("Data Source=SERVER\SQLEXPRESS;Initial Catalog=Datos;Integrated Security=True")

Rem Realizamos el código  en el botón entrar.

Protected Sub btnentrar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnentrar.Click
  Dim dt As New DataTable
  Dim csql As String
  csql = " Select * from USUARIO_M where NOMUSU ='" & TXTUSUARIO.Text & "' AND CLAUSU ='" & _ 
     TXTCLAVE.Text & "'"        
       
  Dim da As New SqlDataAdapter(csql, conexion.ConnectionString)
  conexion.Open()
  da.Fill(dt)
   If dt.Rows.Count > 0 Then
      Session("auntentico") = "si"
      Session("USUARIO") = dt.Rows.Item(0)("NOMBRE").ToString
      Response.Redirect("menu.aspx")

    Else
     lblerror.Text = "Usuario no autorizado Incorrecta"
     Session("auntentico") = "no"
   End If
   conexion.Close()     
End Sub



Código para c#
En este ejemplo utilizaremos los parámetros para conectarnos, esta misma forma la podemos utilizar en vb.net por seguridad cuando trabajamos con base de datos en la web para evitar las inyecciones sql de usuarios no autorizados.

using System.Data;
using System.Data.SqlClient;

string cadena = @"Data Source=SERVERMIT2\SQLEXPRESS;Initial Catalog=Carros;Integrated Security=True";
SqlConnection conexion = new SqlConnection(cadena);
string strsql = " Select *  from USUARIO_M where NOMUSU =@usuario AND CLAUSU =@clave";
SqlCommand cmd = new SqlCommand(strsql, conexion);
cmd.Parameters.AddWithValue("@usuario", TXTUSUARIO.Text );
cmd.Parameters.AddWithValue("@clave", TXTCLAVE.Text);
conexion.Open();
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
   while (rdr.Read())
    {
     // Obteniendo el resultado de la variable que contiene el nombre de usuario
     Session["usuario"] = rdr["USUASI"];
     Response.Redirect("menu.aspx");
          
    }
else
   {
                       
    lblmensaje.Text = "Error de clave o Usuario";
  }
  conexion.Close();