Windows Presentation Foundation



GRIDVIEW EN ASP.NET

Algo que desde hace tiempo estaba leyendo y nadie daba solucion clara, al menos en VB. NET.

Obtener valores de las columnas de una fila seleccionada de un Control GridView de ASP.NET.
Primero agregamos la propiedad Seleccionar fila del GridView:


Luego damos doble click en el gridview y escribimos el sgte codigo en el evento SelectedIndexChanged:

Protected Sub dgCliente_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgCliente.SelectedIndexChanged
lblMensaje.Text = dgCliente.SelectedRow.Cells(2).Text
End Sub

Explicando:

dgcliente : es el nombre del gridview

dgCliente.SelectedRow : obtiene la fila seleccionada

dgCliente.SelectedRow.Cells(2) : obtiene la columna 2 (en mi caso) de la fila seleccionada

dgCliente.SelectedRow.Cells(2).Text : simplemente lo convierte a una cadena de texto

Un servicio es una aplicacion distribuida que te permite obtener datos y acceder a funciones cifradas en xml:
Agregamos un nuevo servicio.asmx a nuestro sitio web:
<%@ WebService Language="VB" Class="WebService" %>
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
_
_

Public Class WebService
Inherits System.Web.Services.WebService

_
Public Function HelloWorld() As String
Return "Hello World"
End Function
End Class


Este servicio web devuelve este archivo en XML:
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">Hello World</string>

Un simple lector de archivos XML

Creamos un formulario similar al siguiente:
...Además agregamos un OpenFile Dialog

Public Class Form1

Dim ds As New DataSet 'Declaramos un dataset
Dim archivo As String

Sub abrir()
'Creamos una subrutina para mostrar el dialogo "Abrir Archivo "
OpenFile.ShowDialog() archivo = OpenFile.FileName
'La funcion ReadXml carga el archivo XML en el dataset

ds.ReadXml(archivo)

MsgBox("Carga del archivo correcta.", MsgBoxStyle.Information)
'Llenamos el datagrid

dgdatos.DataSource = ds.Tables(0).DefaultView

End Sub

Private Sub btnCargar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCargar.Click
'En el evento click del boton Cargar escribimos este codigo:
abrir() btnCargar.Enabled = False btnGrabar.Enabled = True
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btnCargar.Enabled = True btnGrabar.Enabled = False
End Sub

Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGrabar.Click
'En el evento click del boton Grabar usamos la funcion WriteXml para guardar los cambios
ds.WriteXml(archivo)
MsgBox("Guardaste el archivo correctamente", MsgBoxStyle.Information)
End Sub
End Class

Algunos detalles que debemos considerar al momento de Publicar nuestra aplicacion:

  1. Clickeando en Proyecto /Propiedades de (nombre de la aplicacion) .En la opcion Pantalla de Bienvenida seleccionamos nuestro SplashScreen (creado agregando un nuevo elemento de Pantalla de Bienvenida a nuestro Proyecto)
  2. En el boton Información del ensamblado nos saldrá una ventana con información referida al software que hemos creado.
  3. Pueden cambiar el tradicional icono de la ventana en blanco por uno personalizado .Aquí un link para convertir una imagen en icono(*.ico) : http://www.chami.com/html-kit/services/favicon/


MEtodos POST y GET equivalentes entre PHP y ASP.NET

PHP

ASP

Metodo POST$_POST["variable"]Request.Form("variable")
Metodo GET$_GET["variable"]Request.QueryString("variable")

Equivalencias entre Codigo PHP y ASP.NET:

En PHP:

mysql_pconnect("direccion_servidor","usuario","contraseña");
mysql_select_db("nombre_bd");
$consulta=mysql_query("select * from tabla");
$n=mysql_num_rows($consulta);
for($i=0;$i<$n;$i++)
{
$resultado=mysql_fetch_array($consulta);
echo $resultado["nombre"];//Por ejemplo campo nombre
}

En ASP.NET:

En un archivo de tipo aspx(en el page_load por ejemplo):

<%@ Import Namespace ="System.Data" %>
<%@ Import Namespace ="System.Data.SqlClient" %>
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="pagina.aspx.vb" Inherits="_Default" %>
'Se declara el AutoEventWireup para ejecutar el codigo VB
'Lo sgte en el page_load:

dim sqlcon as new SqlConnection("server=direccion;database=nombre_bd;uid=usuario;pwd=password;")
dim sqldaad as new SqlDataAdapter("select * from tabla",sqlcon)
Dim ds As New DataSet()
xcmd.Fill(ds, "nombres")
repetidor.DataSource = ds.Tables("nombres")
repetidor.DataBind()

En la pagina aspx se creó el siguiente codigo en el body
asp:repeater runat=server id=repetidor
itemtemplate
<%#Container.DataItem("nombre")%>
/itemtemplate
/asp:repeater

Ahora, veamos las analogias:

  • La funcion mysql_pconnect() y mysql_select_db() son equivalentes al objeto SqlConnection() .
  • La consulta mysql_query() lo es al objeto SqlDataAdapter().
  • El objeto de tipo DataSet() es similar al mysql_fetch_array, que guarda la informacion de la respuesta de la consulta.
  • El control asp:repeater hace lo mismo que el for($i=0;$i<$n;$i++).
  • El ItemTemplate es la plantilla de cada resultado arrojado
  • El <%#Container.DataItem("nombre")%>es equivalente al resultado del array $resultado("nombre").