El problema es al momento de pasar variables de tipo Date hacia un procedimiento almacenado que tiene parámetros de entrada tipo Datetime.
Depurando mi código fuente, descubrí que las fechas se mostraban con formato mm/dd/yyyy y al momento de pasar por la ejecución de mi consulta me daba el siguiente error:
"La conversión de la cadena "" en el tipo 'Date' no es válida."La solución realmente fue algo simple.
En el archivo de configuracion WebConfig, bajo la linea de:
<system.web>tenemos que configurar la referencia cultural correcta, para esto (en mi caso), el nombre de la referencia cultural es "es-PE" de Español-Perú
<globalization culture="es-PE" enableClientBasedCulture="true" uiCulture="es-PE" />Aquí dejo un enlace de las distintas configuraciones de las referencias culturales para cada país.
Listado de Referencias CulturalesUna vez agregada esta linea en el WebConfig ya podemos pasar las variables tipo fecha con el formato correcto, que en mi caso, tiene que ser dd/mm/yyyy
Dim FechaI As Date = Me.TxtFechaI.Text.Trim
Dim FechaF As Date = Me.TxtFechaF.Text.Trim
dim TextoSql As String = ""Otra forma de pasar las variables de tipo Date con una referencia cultural especifica, es usando el DateTime.Parse que también cumple la misma función:
TextoSql = "Stp_Consulta_Operaciones '" & FechaI & "', '" & FechaF & "'"
Dim FechaI As Date = DateTime.Parse(Me.TxtFechaI.Text.Trim, Globalization.CultureInfo.CreateSpecificCulture("es-PE").DateTimeFormat)
Dim FechaF As Date = DateTime.Parse(Me.TxtFechaF.Text.Trim, Globalization.CultureInfo.CreateSpecificCulture("es-PE").DateTimeFormat)
dim TextoSql As String = ""
TextoSql = "Stp_Consulta_Operaciones '" & FechaI & "', '" & FechaF & "'"
Y en Sql Server (para ambas formas), los parámetros tipo fecha deben ser datetime
create proc Stp_Consulta_OperacionesEn mi siguiente post, pondré ejemplos de las distintas formas de trabajar con fechas en Sql Server.
@fechai datetime,
@fechaf datetime
as
begin
.....
end
No hay comentarios:
Publicar un comentario