Equivalencias entre tipos de datos de SQL Server y el .NET Framework

Es importante establecer los tipos de datos correctos en las variables de ASP.NET que utilizas para realizar operaciones con datos que provienen de una base de datos de SQL Server. Pero ¿qué tipos de datos cuando estás programando en ASP.NET corresponden a cada tipo de datos definido en SQL Server?

Aquí esta la lista de equivalencias:

SQL Server data type

CLR data type (.NET Framework)

varbinary

Byte[]

binary

Byte[]

varbinary(1), binary(1)

byte, Byte[]

image

None

varchar

None

char

None

nvarchar(1), nchar(1)

Char, String, Char[]

nvarchar

String, Char[]

nchar

String, Char[]

text

None

ntext

None

uniqueidentifier

Guid

rowversion

Byte[]

bit

Boolean

tinyint

Byte

smallint

Int16

int

Int32

bigint

Int64

smallmoney

Decimal

money

Decimal

numeric

Decimal

decimal

Decimal

real

Single

float

Double

smalldatetime

DateTime

datetime

DateTime

sql_variant

Object

User-defined type(UDT)

Same class that is bound to the user-defined type in the same assembly or a dependent assembly.

table

None

cursor

None

timestamp

None

xml

None

Encontrarás la lista completa en esta página.

Cómo evitar que la variable Session.SessionID cambie

Si creas una página en ASP.NET y en su evento Load pones lo siguiente:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   Label1.Text = Session.SessionID & " " & Session("idsesion")
   Response.Write(Session.SessionID)
End Sub

notarás que cada vez que oprimes Refresh o Actualizar en tu navegador, la variable de sesión se modifica. Definitivamente es raro porque uno siempre ha sabido que la variable de sesión debe ser la misma durante todo el tiempo que el visitante permanece visitando la aplicación.

Bueno, la variable de sesión permanece igual siempre y cuando se coloque algún valor en el estado de la sesión. (yo tampoco entiendo muy bien la razón).

El caso es que para solucionar el problema “de raíz”, creé una variable de sesión en el código del archivo Global.asax, justo cuando se crea la sesión (checa la línea 20):

<%@ Application Language="VB">
 
<script runat="server">
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
   ' Code that runs on application startup
End Sub

Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
   ' Code that runs on application shutdown
End Sub

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
   ' Code that runs when an unhandled error occurs
End Sub

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
   ' Code that runs when a new session is started
   'La siguiente linea evita que session.sessionid se modifique cada
   'vez que se oprime Refresh en el navegador
   Session("idsesion") = Session.SessionID
End Sub

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
   ' Code that runs when a session ends.
   ' Note: The Session_End event is raised only when the sessionstate mode
   ' is set to InProc in the Web.config file. If session mode is set to StateServer
   ' or SQLServer, the event is not raised.
End Sub
</script>

Esto hace que el estado de la sesión permanezca sin modificarse y ahora el código del Response.Write(Session.SessionID) citado anteriormente regresa siempre el mismo valor. =)

Iconos de espera para Ajax

¿Estás buscando tu propio icono (indicador) de espera para Ajax?

Esta página es muy buena, te permite crear el tuyo personalizado con los colores que desees, tiene una amplia variedad y los diseños están atractivos. La salida es un gif animado que puedes descargar.

http://www.ajaxload.info/

Cómo obtener tamaño, ancho y alto de una imagen, y cómo modificar su tamaño

Para obtener el tamaño, ancho y alto de una imagen, usa el siguiente código:

Primero importa:

  1. Imports System.IO
  2. Imports System.Drawing

Para obtener tamaño, ancho y alto de una imagen:

  1. Dim fs As FileStream = New FileStream("c:mirutamiimagen.jpg", FileMode.Open, FileAccess.Read, FileShare.Read)
  2. Dim LaImagen As System.Drawing.Image
  3. LaImagen = System.Drawing.Image.FromStream(fs)
  4. Label3.Text = "Tamaño: " & Convert.ToInt32(fs.Length) & "<br/>"
  5. Label3.Text = Label3.Text & "Ancho: " & LaImagen.Width & "<br/>"
  6. Label3.Text = Label3.Text & "Alto: " & LaImagen.Height & "<br/>"
  7. fs.Close()
  8. fs = Nothing

Para modificar su tamaño:

  1. Dim fs As FileStream = New FileStream("c:\miruta\miimagen.jpg", FileMode.Open, FileAccess.Read, FileShare.Read)
  2. Dim LaImagen As System.Drawing.Image
  3. LaImagen = System.Drawing.Image.FromStream(fs)
  4.  
  5. Dim ancho, alto As Integer
  6. ancho = 100
  7. 'este calculo es para que la foto no pierda proporciones
  8. alto = Math.Floor((100 / LaImagen.Width) * LaImagen.Height)
  9.  
  10. Dim NuevoBitmap As Bitmap = New Bitmap(ancho, alto)
  11. Dim Graficos As Graphics = Graphics.FromImage(NuevoBitmap)
  12. Graficos.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
  13. Graficos.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
  14. Graficos.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
  15. Dim Rectangulo As Rectangle = New Rectangle(0, 0, ancho, alto)
  16. Graficos.DrawImage(LaImagen, Rectangulo)
  17. NuevoBitmap.Save("c:\miruta\thumb.jpg", NuevoBitmap.RawFormat)
  18. fs.Close()
  19. fs = Nothing

Este código es muy útil para crear vistas previas de nuestras imágenes (o thumbnails) automáticamente.

Cómo subir un archivo al servidor usando ASP.NET

Para subir un archivo al servidor mediante una aplicación web ASP.NET 2, usa el siguiente código:

  1. <asp:FileUpload ID="FileUpload1" runat="server" /><br />
  2. <asp:Button ID="Subir" runat="server" Text="Subir foto" />
  1. If FileUpload1.HasFile Then
  2.    FileUpload1.SaveAs("c:\miruta" & FileUpload1.Filename)
  3. End If

Asegúrate de que el fólder en el que vas a grabar tus archivos tenga permisos de escritura por parte del usuario ASPNET y/o NETWORK SERVICE.