Windows 7: Comando para abrir ODBC 64 bits

Abrir un Origen de datos ODBC para Windows 7 en Sistemas Operativos (SO) de 64 bitsregularmente lo buscamos en Inicio > Panel de Control > Herramientas Administrativas > Opciones de Base de Datos (ODBC). Si lo hacemos de esta forma, estamos accediendo al ODBC de 32 bits en SO de 64 bits, la forma correcta de hacerlo es a través del siguiente comando DOS:

* Utilizando la ventana de Comando DOS (cmd.exe) escribimos:

SystemRoot%\SysWow64\odbcad32.exe

ODBC 64 bits Windows 7

ó

ODBC Windows 7 SO 64 bits

Una vez realizado lo anterior, sugiero cambiar el acceso directo del Orígen de datos ODBC, del 
"Panel de control\Herramientas administrativas”, por la nueva ruta así:


Si tienen alguna duda o ampliar la información me cuentan, hasta pronto.
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

c#: Duplicate items are not supported by the "Resources" parameter

Hoy les presento un error que le sucedió a un amigo (Pedro) a la hora de obtener una copia del diseño y código de un formulario de un proyecto en Visual Studio .Net. Para esto, lo que realizo fue copiar el formulario original y realizarle una copia. Cuando intento abrir la copia del formulario le genero el siguiente error:

"Error 1 The item "obj\Debug\My_Project.NewConsumable.resources" was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter. My Project"

Solución:

1. Cerrar el Visual Studio.
2. Ir a la carpeta del proyecto de Visual Studio.
3. Localizar el cs. y Designer.cs que acabo de realizarle copia.
4. Abrir ambos archivos.
5. Buscar y reemplazar las instancias del nombre del formulario original con el nombre del nuevo formulario. Tener presente mantener las convenciones de nombres.
6. Guardar ambos archivos, cerrar el editor.
7. Ir a Visual Studio y abrir el proyecto recién corregido y listo.
Cualquier sugerencia o duda nos leemos en los comentarios.

Hasta pronto.
Share:

Visual Studio .Net: resx Invalido

Para restaurar en Visual Studio .Net un archivo resx invalido debemos seguir los siguientes pasos:

1. Eliminar del explorador de proyecto el archivo resx invalido asociado al formulario que presenta problemas.
2. Haga doble clic para abrir el diseñador del formulario.
3. En el formulario, realizar cualquier cambio por ejemplo: mover un botón, caja de texto o control de posición. 
4. Listo!!! Visual Studio generar automáticamente un nuevo archivo resx.

Espero que los pasos anteriores los pueda ayudar. Si tienen dudas o sugerencias del post, los puedes realizar en los comentarios hasta pronto.
Share:

SQL Integration Services - SSIS: Contenedor de bucles Foreach

El contenedor de bucles Foreach define un flujo de control que se repite en un paquete. Este es un componente definido en el SSIS (SQL Server Integration Services). La ejecución del bucle en el contendor For Each es similar al bucle Foreach de varios lenguajes de programación conocidos.

Existen diferentes tipos de enumeradores disponibles que son:

* Enumerador de archivos para Foreach
El enumerador de archivos enumera los archivos en una carpeta. Por ejemplo, podemos obtener todos los archivos que tienen la extensión *. Txt en una carpeta de Windows y sus subcarpetas.

* Enumerador ADO para Foreach
Permite enumerar las filas de una tabla. Por ejemplo, podemos obtener las filas de los registros ADO.

* Enumerador de conjunto de filas del esquema Foreach de ADO.Net
El enumerador ADO.Net enumera la información del esquema. Por ejemplo, podemos obtener la una lista de tablas de la base de datos.

* Enumerador de elementos para Foreach
Utilizado para enumerar elementos que son colecciones. Por ejemplo, podemos enumerar los nombres de los ejecutables y directorios de trabajo que utiliza una tarea Ejecutar proceso.

* Enumerador de lista de nodos para Foreach
La lista de nodos que permite Enumera el resultado de una expresión XPath.

* Enumerador de variable para Foreach
El enumerador de variable enumera los objetos que contienen variables especificadas. Aquí los objetos enumerador no son más que una matriz o tabla de datos, como por ejemplo un DataSet de ADO.Net

* Enumerador de SMO para Foreach
El enumerador de SMO enumera los objetos de administración de SQL Server (SMO). Por ejemplo, se puede obtener la lista de funciones o vistas de una base de datos SQL Server.

Para este ejemplo utilizaremos el enumerador de archivos Foreach, vamos a copiar los archivos que se encuentran en una carpeta Origen (C:\Origen) a una carpeta Destino (D:\Destino).

Business Intelligence ProjectsPrimero abrimos el Visual Studio y creamos un proyecto Business Intelligence - Integración de
servicios como lo muestra la siguiente imagen.


Después de crear el proyecto de integración de servicios cambiamos el nombre por defecto de la Dtsx package1, para este ejemplo podemos poner ExampleForeach.

Solution Explorer

Seguidamente empezamos agregando una variable a nuestro paquete ExampleForeach, damos clic derecho sobre el modo de diseño y en el menú damos clic sobre Variables.


Luego nos aparece una ventana que nos permite Agregar la variable.



Aquí añadimos como nombre de variable File, tipo de datos String y value o valor default.



Ya configurada nuestra variable, procedemos arrastrar el contenedor de bucles ForEach que se encuentra en la caja de herramientas al formulario.

Quedando el contenedor bucle Foreach en modo diseño de la siguiente forma:


Para configurar nuestro control seguiremos los siguientes pasos:

1. Dar doble clic en el cuadro contenedor de bucle o clic derecho Edit
2. Luego se muestra una ventana para editar el bucle Foreach.
3. En esta ventana en el menu Collection seleccionamos en tipo enumerador, Enumerador de archivos.
4. Establecemos la carpeta Origen en la sección configuración de Enumeración. Para este ejemplo he dejado la ruta D:\Docs 
5. Si lo deseamos, marcamos la casilla de verificación Traverse Subcarpetas.

Si seguimos los pasos anteriores tendremos una configuración como lo muestra la siguiente imagen:


En la misma ventana, seleccionamos del menú izquierdo la opción Variable Mappings aquí seleccionamos la variable que habiamos creado.
Finalmente damos clic en Aceptar. 
En este punto ya tenemos configurado nuestro contenedor de bucles ForEach. Ahora agregamos un control File System Task a nuestro contenedor de bucles Foreach, debe quedar como se muestra en la imagen.

Foreach Loop Container

Para configurar seguimos los siguientes pasos:

1. Dar doble clic en el cuadro File System Task o clic derecho Edit.
2. En la ventana establecer IsDestinationPathVariable en False.
3. Configuramos la conexión destino, en la propiedad DestinationConnection
4. Seleccionamos la opción de nueva conexión.


5. En la ventana que aparece seleccionamos "Carpeta existente" o Existing folder.
6. Seguidamente, seleccionamos la carpeta de destino mediante "Examinar". Para este ejemplo seleccionamos D:\Destino

Dar clic en Ok para continuar la configuración.

7. Luego Seleccionamos la Operación, para este caso es Copiar archivos o Copy file.
8. Cambiamos a True la propiedad IsSourcePathVariable y seleccionamos la opción SourceVariable User::File

Quedando la parametrización para nuestro control de la siguente forma:


En la ventana damos clic en Ok. Ejecutamos nuestro proyecto (F5) y si todo nos sale bien debemos ver una imagen como la siguiente, además de verificar si los archivos fueron copiados de acuerdo a las rutas configuradas como Origen y Destino.


"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Crear Setup o Instalador en Visual Studio .NET 2010

Este post nos permite mostrar paso a paso como se configura un Setup o instalador en Visual Studio .Net 2010.
Para este ejemplo realice un pequeño proyecto con un formulario que nos da la bienvenida así:


Luego de crear la aplicación, agregamos un nuevo proyecto Setup, para esto damos clic derecho sobre la solución y seleccionamos la opción Agregar - Nuevo proyecto, luego nos aparece una ventana como lo muestra la siguiente imagen:














En esta ventana nos ubicamos en el árbol de la izquierda, ingresamos a Otro tipo de proyecto (Other Project Types)  - Instalación e Implementación (Setup and Deployment) y luego seleccionamos Visual studio Installer. En la ventana de la derecha seleccionamos Setup Project, digitamos el nombre del proyecto para este caso SetupEjemplo y clic en el botón OK. Finalmente nos aparece el proyecto agregado a la solución como se ve en la siguiente imagen:


Para asociar nuestra aplicación al Setup, damos clic derecho sobre Application Folder - Add - Project Outout.. o proyecto de salida, como lo muestra la siguiente imagen:


Seguidamente nos aparece esta ventana donde debemos seleccionar Primary output (contiene la Dll o Exe del proyecto) y damos clic sobre el botón OK.

Seleccionar Ejecutable

La siguiente ventana nos indica que hemos asociado correctamente el Setup con nuestra aplicación. Esto lo podemos ver en el Explorador de soluciones en nuestro proyecto de instalación.


Al dar clic sobre el proyecto Setup nos aparecen las propiedades del mismo, aquí podemos configurar el Autor, descripción, nombre del producto, versión, entre otras propiedades.










Si nuestra aplicación, previamente necesita de algún producto Framework, Crystal Reports o Sql Server, se encuentre instalado, lo podemos hacer de la siguiente manera. Damos clic derecho sobre el Setup - Propiedades así:


Nos muestra una ventana de propiedades del Setup. En ésta, existe un botón llamado prerrequisitos o Prerequisites... damos clic en él. Luego nos aparece una ventana que nos permite marcar aquellos componentes que nuestra aplicación necesita para una correcta ejecución.


Luego de lo anterior, tenemos prácticamente configurado nuestro Setup, solo resta configurar un acceso directo de nuestro instalador, ya se en en el escritorio o en Inicio - Todos los programas, lo podemos hacer de la siguiente forma:

* Estando en el instalador, en la parte izquierda aparece una carpeta llamada User's Desktop, aquí damos clic derecho, luego en el submenú seleccionadmos Add - Project Output.. y finalmente en la ventana que aparece seleccionamos Primary output y clic en Aceptar.

En la explicación anterior nuestro acceso directo queda en el escritorio de nuestro PC. Si queremos ponerlo en Inicio - Todos los programas seleccionamos la carpeta User's Programs Menú y seguimos los pasos anteriores.

Finalmente para generar nuestro Setup, solo basta con ubicarnos en el proyecto y compilamos:

Compilar Setup
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Más de 1000 visitas al Mes en DevCate Programación .Net

El día de hoy me llena de alegría de saber que hemos alcanzado más 1000 visitas al mes en el blog, aunque sé, que debo seguir trabajando para mejorar y crear buen contenido, me deja tranquila que las cosas se están haciendo de la mejor manera, a todos muchas gracias por su apoyo y comentarios, esperen pronto nuevos post, que permita aportar y resolver inquietudes en este mundo mágico de la Programación de software, no quiero despedirme sin antes enviarles un fuerte abrazo desde su Blog DevCate Programación .Net.

Panel de Visitas - clic para ampliar la imagen.

Share:

Exportar DataSet a Excel desde C# .Net

Hace un par de días, un compañero me llamo a preguntarme si conocía como pasar o exportar los datos de una grilla (DatagridView) en .Net C# a un archivo Excel. Fue aquí, donde recordé que había hecho algo parecido hace algún tiempo. Este código por su necesidad en la mayoría de las aplicaciones (Exportar datos) puede llegar a ser muy útil y quiero que lo tengan con ustedes.

Empecemos explicando un poco la funcionalidad del ejemplo.

Los datos que voy a mostrar en la grilla vienen de un procedimiento almacenado, estos registros los almaceno en una variable publica de tipo DataSet, la cual se encarga de poblar o llenar la Grilla y finalmente exporta los datos ha Excel. Les muestro el código para ser un poco mas claro.



Declaramos de Variable Dataset
DataSet dsDatos = new DataSet();

Se llena la variable con la consulta que viene de base de datos y se muestran los datos en la Grilla.
SqlCommand cmd = new SqlCommand(sSql, connDB);
SqlDataAdapter DaRecDatos = new SqlDataAdapter(cmd);
DaRecDatos.Fill(dsDatos);
dataGridView1.DataSource = dsDatos;

Para exportar los datos llamo al Dataset (dsDatos) que previamente llenamos y se lo pasamos aun método llamado, para este ejemplo ExportarAexcel que se encargara de exportar los datos en la ruta que seleccionamos en el FileDialog, así:
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Files (*.xls)|*.xls";// All Files (*.*)|*.*";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
	FileName = saveFileDialog.FileName;
	if (FileName.Trim() != "")
	{
		if (ExportarAexcel(dsDatos, FileName, ref sError))
		{
			return true;
		}                    
	}
}

Anexo método que exporta los datos:
public static bool ExportarAexcel(DataSet source, string fileName,ref string sErr)
{
	try
	{
		System.IO.StreamWriter excelDoc;

		excelDoc = new System.IO.StreamWriter(fileName);
		const string startExcelXML = "\r\n\r\n \r\n " +
		  "\r\n " +
		  "\r\n " +
		  "\r\n \r\n " +
		  "\r\n \r\n " +
		  "\r\n ";
		const string endExcelXML = "";

		int rowCount = 0;
		int sheetCount = 1;
	   
		excelDoc.Write(startExcelXML);
		excelDoc.Write("");
		excelDoc.Write("");
		excelDoc.Write("");
		for (int x = 0; x < source.Tables[0].Columns.Count; x++)
		{
			excelDoc.Write("");
			excelDoc.Write(source.Tables[0].Columns[x].ColumnName);
			excelDoc.Write("");
		}
		excelDoc.Write("");
		foreach (DataRow x in source.Tables[0].Rows)
		{
			rowCount++;
			//if the number of rows is > 64000 create a new page to continue output
			if (rowCount == 64000)
			{
				rowCount = 0;
				sheetCount++;
				excelDoc.Write("
"); excelDoc.Write("
"); excelDoc.Write(""); excelDoc.Write(""); } excelDoc.Write(""); //ID=" + rowCount + " for (int y = 0; y < source.Tables[0].Columns.Count; y++) { System.Type rowType; rowType = x[y].GetType(); switch (rowType.ToString()) { case "System.String": string XMLstring = x[y].ToString(); XMLstring = XMLstring.Trim(); XMLstring = XMLstring.Replace("&", "&"); XMLstring = XMLstring.Replace(">", ">"); XMLstring = XMLstring.Replace("<", "<"); excelDoc.Write("" + ""); excelDoc.Write(XMLstring); excelDoc.Write(""); break; case "System.DateTime": //Excel has a specific Date Format of YYYY-MM-DD followed by //the letter 'T' then hh:mm:sss.lll Example 2005-01-31T24:01:21.000 //The Following Code puts the date stored in XMLDate //to the format above DateTime XMLDate = (DateTime)x[y]; string XMLDatetoString = ""; //Excel Converted Date XMLDatetoString = XMLDate.Year.ToString() + "-" + (XMLDate.Month < 10 ? "0" + XMLDate.Month.ToString() : XMLDate.Month.ToString()) + "-" + (XMLDate.Day < 10 ? "0" + XMLDate.Day.ToString() : XMLDate.Day.ToString()) + "T" + (XMLDate.Hour < 10 ? "0" + XMLDate.Hour.ToString() : XMLDate.Hour.ToString()) + ":" + (XMLDate.Minute < 10 ? "0" + XMLDate.Minute.ToString() : XMLDate.Minute.ToString()) + ":" + (XMLDate.Second < 10 ? "0" + XMLDate.Second.ToString() : XMLDate.Second.ToString()) + ".000"; excelDoc.Write("" + ""); excelDoc.Write(XMLDatetoString); excelDoc.Write(""); break; case "System.Boolean": excelDoc.Write("" + ""); excelDoc.Write(x[y].ToString()); excelDoc.Write(""); break; case "System.Int16": case "System.Int32": case "System.Int64": case "System.Byte": excelDoc.Write("" + ""); excelDoc.Write(x[y].ToString()); excelDoc.Write(""); break; case "System.Decimal": case "System.Double": excelDoc.Write("" + ""); excelDoc.Write(x[y].ToString()); excelDoc.Write(""); break; case "System.DBNull": excelDoc.Write("" + ""); excelDoc.Write(""); excelDoc.Write(""); break; default: throw (new Exception(rowType.ToString() + " not handled.")); } } excelDoc.Write(""); } excelDoc.Write("
"); excelDoc.Write("
"); excelDoc.Write(endExcelXML); excelDoc.Close(); } catch (Exception ex) { sErr = ex.Message; return false; } return true; }

Si desean conocer como Exportar un DaTable a formato CSV no dejen de visitarlo es una funcionalidad que los puede sacar de apuros en cualquier proyecto.

"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Validar sólo números o Texto con JavaScript

En la mayoría de las veces, es necesario validar en una aplicación que caracteres introduce el usuario en un campo de texto, como por ejemplo: solo letras para la captura de Nombres y apellidos o solo números en diferentes navegadores para un teléfono o validar sólo números y letras.

Validar Textbox en C# para que acepte solo números, lo podemos lograr a través del siguiente código JavaScript, mostrado a continuación:

Validar sólo números
Esta función nos permite identificar a través de la propiedad event.keyCode la tecla digitada. Si el caracteres digitado no se encuentra dentro del rango de teclas numéricas (del 48 al 57) retorna falso (no permite escribir el caracter), como lo muestra el siguiente código:
//Función que permite solo Números
function ValidaSoloNumeros() {
 if ((event.keyCode < 48) || (event.keyCode > 57)) 
  event.returnValue = false;
}

Luego, para llamar la función en nuestra pagina web, solo basta con invocarlo en el evento onkeypress de la caja de texto así:

Validar sólo Texto o Letras

A diferencia del código anterior, éste nos permite digitar sólo texto, letras mayúsculas (del 65 al 90) y minúsculas (del 97 al 122) así:
function txNombres() {
 if ((event.keyCode != 32) && (event.keyCode < 65) || (event.keyCode > 90) && (event.keyCode < 97) || (event.keyCode > 122))
  event.returnValue = false;
}

Llamamos la función en el evento onkeypress de la caja de texto:


Si queremos que los códigos anteriores, no estén incluidos dentro de la pagina web, podemos crear un archivo .js llamado Validaciones.js, luego copiamos y pegamos el código anterior en este archivo, guardamos y finalmente agregamos la siguiente línea, arriba del tag </head> , de la pagina donde se desee llamar la función:

Espero los pueda ayudar, cualquier duda me escriben por este post o a mi  correo, hasta pronto.
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Mailcheck Plugin jQuery reduce errores tipográficos en Direcciones de correo electrónico


MailCheck es un plugin jQuery muy interesante, el cual nos permite validar correos electrónicos. Funciona de tal forma que nos sugiere un dominio adecuado cuando los usuarios escriben mal una dirección de correo electrónico. Ejemplo; cuando un usuario teclea "users@hotail.con", Mailcheck sugerirá "users@hotmail.com". Mailcheck ofrecerá hasta sugerencias de dominios de nivel superior también, y sugieren ". Com" cuando un usuario escribe "users@hotmail.cmo".

MailCheck

Esta información la confronta con una lista de dominios de correo electrónico más frecuentes como son: yahoo.com, google.com, hotmail.com, gmail.com, me.com, aol.com, mac.com, live.com, comcast.net, googlemail.com, msn.com, hotmail. co.uk, yahoo.co.uk, facebook.com, verizon.net, sbcglobal.net, att.net, gmx.com y mail.com., así como con aquellos que nosotros le indiquemos.

Los dominios de primer nivel predeterminados que se incluyen son: com, net, org, info, edu, gov, co.uk, y mil.

Ejemplo

Incluimos las librerias de jQuery y Mailcheck en nuestra página.




Agregamos un campo de texto.


Ahora, coloque Mailcheck al campo de texto. Se declara una matriz de dominios y los dominios de nivel superior que desea comprobar.


Mailcheck toma en dos devoluciones de llamada, sugirió y vacío. Se recomienda suministrar ambos, sugirió que se llama cuando hay una sugerencia. Mailcheck pasa por el elemento de destino y la sugerencia.

La sugerencia es un objeto con los siguientes miembros:

{
  Dirección: 'test', // la dirección y parte antes del símbolo @
  domain: 'hotmail.com', // el dominio sugerido
  topLevelDomain: 'com',    // the suggested top level domain
  completo: 'test@hotmail.com' // el correo electrónico completa sugerido
}

vacío se llama cuando no hay sugerencia. Mailcheck sólo pasa en el elemento de destino.

Para los que deseen optimizar sus sitios con este interesante componente, se encuentra disponible de forma libre, se pueden dirigir a la siguiente documentación.
Share:

Excluir IP de las estadísticas de Google Analytics

Al crear mi blog tuve la necesidad de realizar seguimiento a los usuarios que visitan el sitio. Para esto tome la opción de realizarlo a través de Google Analytics, ya que es una aplicación sencilla y muy extensible en sus funcionalidades. Luego de esto, me di cuenta que en las estadísticas aparecían visitas desde mi maquina por modificaciones o ajustes que realizaba. Debido a esto tuve la necesidad de excluir mi Ip de las estadísticas con el fin de tener cifras mas exactas y hacer seguimiento del comportamiento que tenian  los usuarios con el sitio.

Como primer paso para solucionar lo anterior, debemos conocer nuestra Ip en Internet, para esto podemos ir a: Cual es mi Ip

Crear filtro

Ya teniendo nuestra Ip procedemos a ingresar al Administrador de Google Analytics, ingresamos a la pestaña Filtros

Filtros
Luego damos click en Filtro nuevo

Crear filtro

Para configurar el filtro seguimos los siguientes pasos:

1. Seleccionamos un método para aplicar el filtro, para este caso Crear filtro nuevo
2. En nombre del filtro, escribimos un nombre que nos identifique lo que vamos a realizar, para este caso lo llame Excluir mi IP.
3. En tipo de filtro marcamos Filtro personalizado, opción Excluir.
4. Para Campo de filtro buscamos el que diga Dirección IP.
5. En Patrón de filtro escribimos la Ip de nuestro equipo. Tener presente colocar antes del punto la barra invertida(\) - realizándolo de esta forma me funciono, si alguien lo prueba sin la barra invertida me cuenta como le va.
6. En distinción de mayúsculas y minúsculas marcamos No

Finalmente damos click en Guardar y ya nuestra Ip no se tomara en cuenta en las estadísticas de nuestro sitio.

Añadir filtro

Realicen la prueba y me cuentan, como les va. Hasta pronto.
Share:

Obtener Día, Mes y Año en SQL Server

A través del siguiente código SQL, podemos obtener de un forma rápida el día, mes y año de una fecha.

Cómo separar una fecha por dia mes y año en sql

Una forma sencilla de separar el día, mes y año de una fecha en sql, es a travez de las funciones DateName y DatePart.

El código esta comentado línea a línea, si tienen algún comentario o sugerencia al mismo me escriben.
Declare @Fecha Datetime,
     @Dia Varchar(2),
     @Mes Varchar(12),
     @Ano Varchar(4)
  
--Guardamos en variable el día de hoy
Set @Fecha = Getdate()

--Establecemos idioma para retornar el formato de la fecha - para este caso español
Set Language spanish

--Retornamos el dia, mes y año de la fecha
Set @Dia = Datepart(dd,convert(datetime,@Fecha,103)) 
Set @Mes = DateName(mm,convert(datetime,@Fecha,103))
Set @Ano = Datepart(yy,convert(datetime,@Fecha,103))

--Establecemos el lenguaje original
Set Language English

--Retornamos variables con los datos
Select @Dia Dia,@Mes Mes,@Ano Año
El resultado seria el siguiente:

Fecha SQL
Leer Mas:

Si queremos consultar el lenguaje configurado en le servidor de base de datos, lo podemos conocer a través de la siguiente instrucción:
select @@LANGUAGE Lenguaje
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Instalar Visual Studio 2010

Hola como estan, aunque ya tenemos disponible la ultima versión de Visual Studio 2012, recientemente tuve la necesidad de instalar Visual Studio 2010 por razones de mantenimiento de una aplicación web. Es por esto que hoy les traigo un paso a paso de la instalación espero sea de su utilidad.

La primera ventana que nos aparece, nos da la bienvenida a la instalación, aquí se cargan componentes necesarios para el inicio de la instalación:


Luego nos muestra los términos y condiciones de licencia, dar clik en Next o siguiente.


Aquí nos permite seleccionar por una instalación full (completa) o Custom (personalizado), a la derecha nos muestra una breve descripción de la instalación ruta o paht y espacio requerido para una correcta instalación.


Seleccionando la opción Custom o personalizada, el wizard de la instalación nos permite marcar que aplicaciones o componentes del Visual Studio deseamos instalar como lo muestran las dos siguientes imagenes:



Al dar clik en Instal (Instalar) el proceso inicia en forma la instalación de los componentes, como lo indica la siguiente imagen: 



Finalmente terminado el anterior proceso correctamente, el wizard nos muestra una imagen como la siguiente donde los indica que toda la instalacion se realizo satisfactoriamente:


Dando clik en finish, la instalación nos solicita reiniciar el computador para que todos los cambios queden aplicados.


Como pueden ver, es una instalación bastante estable y segura de realizar, si llegan a tener algún comentario o duda me cuentan, hasta pronto.




Share:

Inicializar campo IDENTITY

Para inicializar columnas IDENTITY se pueden utilizar las siguientes 2 opciones:

1. Una opción es a través de la instrucción Sql TRUNCATE TABLE, además de borrar el contenido de la tabla inicializa el valor del campo IDENTITY.

Ejemplo:
TRUNCATE TABLE tbIdentiy

2. La segunda es usando el comando DBCC CHECKIDENT.

Esta instrucción permite resetear el valor que queremos del campo Identity, así:

DBCC CHECKIDENT (tbIdentiy,RESEED,1)

Tener cuidado con el uso de este comando, ya que podemos resetear un valor menor al máximo de la tabla y crear en algún momento un valor duplicado.
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""
Share:

Como Crear de forma fácil Columna Identity en SQL Server

El atributo Identity puede ser utilizado al crear tablas con campos numéricos (int,smallint, bigint, y tinyint), en sentencias Create Table y Alter Table.

Pero como crear de forma fácil una Columna Identity?, antes de saber Como, debe entender que en que consiste.

Es aquella columna que nos permite generar valores secuenciales e incrementables automáticamente cada vez que se inserta un nuevo registro en una tabla, Sql se encarga de asignarle el valor numérico correspondiente a la columna.

Veamos como funciona, creando una tabla con una columna IDENTITY:

CREATE TABLE tbIdentiy 
(
Id Int NOT NULL IDENTITY(1,1) PRIMARY KEY,
Descripcion Varchar(20) NOT NULL 
)
Go

Podemos observar en el anterior script, que la columna identidad (id) es entera, no se permiten valores nulos (NOT NULL)  esta parametrizada como IDENTITY(1,1), esto significa que inicia en 1 y se incrementa de 1 en 1, además la columna la establecemos como llave primaria (PRIMARY KEY), no es necesario, pero es recomendable establecer como llave primaria a este tipo de columnas.

Con la tabla ya creada, veamos como insertamos los datos:

Insert Into tbIdentiy(Id,Descripcion) Values(1,'Vb.Net')
Go


Ejecutando la anterior sentencia sql nos genera un error, ya que estamos estableciendo el valor 1 a la columna IDENTITY.


Msg 544, Level 16, State 1, Line 1
Cannot insert explicit value for IDENTITY column in table 'tbIdentiy' when IDENTITY_INSERT is set to OFF.

Ejecutemos la sentencia, pero sin incluir la columna Id

Insert Into tbIdentiy(Descripcion) Values('Vb.Net')
Go
(1 row(s) affected)

La ejecución fue satisfactoria, consultando la tabla

Select Id,Descripcion From Dbo.tbIdentiy


Si insertamos mas registros en la tabla:

Insert Into tbIdentiy(Descripcion) Values('C#')
Go
Insert Into tbIdentiy(Descripcion) Values('Sql Server')
Go

Identity 3 Rows






Nos damos cuenta, que por cada inserción en la tabla, Sql incrementa automáticamente la columna Id y esto es por el atributo IDENTITY.

Como recomendación anexo post que nos permite Inicializar un campo IDENTITY.

Espero les sirva esta documentación, hasta pronto.
Share:

Nueva versión jQuery 1.8.2


Se encuentra disponible para su descarga la nueva versión de jQuery 1.8.2 (Framework de Javascript).

Esta herramienta de software libre, nos permite construir aplicaciones web altamente interactivas con mucha elegancia y amplia funcionalidad del lado del cliente, nos trae en esta ocasión una versión de mantenimiento la cual corrige algunos errores de seguridad y desempeño que fueron descubiertos en los dos últimos lanzamientos.

Para más información, se pueden dirigir a los CDN de Google y Microsoft, anexo url donde podran descargar la versión: blog.jquery.com/2012/09/20/jquery-1-8-2-released/
Share:

Solo Letras en los Textbox C# - Windows Forms

En el desarrollo de aplicaciones en C#, es común encontrarse con la necesidad de restringir la entrada de datos en TextBox a solo letras. Este artículo abordará estrategias efectivas para llevar a cabo esta validación, proporcionando código práctico y consejos esenciales para mejorar la calidad de tu aplicación.

Solo Letras en C#


1. Validación en Tiempo Real: Evento Keypress

La primera técnica consiste en implementar una validación en tiempo real al suscribirse al evento KeyPress. De esta manera, puedes filtrar las entradas y permitir solo letras. Aquí te presento un fragmento de código que puedes integrar:
private void txtCaracter_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(char.IsLetter(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
{
      MessageBox.Show("Solo se permiten letras", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
      e.Handled = true;
      return;
}
}
Este código asegura que solo se ingresen letras y permite el uso de teclas de control como borrar o retroceso.

2. Utilización de Expresiones Regulares: Verificación de Texto Completo

Otra estrategia poderosa implica el uso de expresiones regulares para verificar el contenido completo del TextBox. El siguiente ejemplo muestra cómo implementar esta validación:

private void TextBox_TextChanged(object sender, EventArgs e)
{
    string input = TextBox.Text;
    if (!Regex.IsMatch(input, "^[a-zA-Z]+$"))
    {
        MessageBox.Show("Por favor, ingrese solo letras.", "Error de Validación", MessageBoxButtons.OK, MessageBoxIcon.Error);
        TextBox.Text = ""; // Limpiar el contenido no válido
    }
}

Mejora la Experiencia del Usuario con Validación de Entrada de Datos

Implementar la validación para ingresar solo letras en TextBox en C# no solo mejora la integridad de los datos sino que también proporciona una experiencia más intuitiva y libre de errores para los usuarios. Al integrar estas estrategias en tu código, garantizas una aplicación robusta y confiable. ¡Explora estas opciones y eleva la calidad de tu desarrollo en C#!

Leer Más:



Ejecutando el código anterior se genera un mensaje como lo muestra la siguiente imagen:


Digitación correcta:


Está validación no solo se puede aplicar sobre un control Textbox, lo podemos ver en proyectos de tipo consola, como se puede ver en el siguiente ejemplo. Parte II: Solo Letras C# - Windows Forms (Consola)


Share:

IsNull en Oracle


NVL OracleEn las consultas a base de datos los resultados pueden traernos valores Nulos (Null) para evitar esto, en SQL la función se llama IsNull en Oracle es llamada NVL, veamos como se usan:







Oracle NVL

nvl(check_expression,replacement_value)

SQL IsNull

IsNull(check_expression,replacement_value)

En ambos casos las funciones reemplazan el valor nulo (check_expression) por el que se encuentre en segundo parámetro replacement_value.
Share:

▶ Como Validar solo Números en los Textbox C# - Windows Forms

Cuando trabajas en aplicaciones C# y te encuentras con la necesidad de asegurar que un TextBox solo acepte números, la validación adecuada se convierte en un aspecto clave para garantizar la integridad de los datos. En este artículo, exploraremos estrategias efectivas para lograr esta validación específica y proporcionaremos códigos prácticos que puedes implementar en tus proyectos de desarrollo en C#.

TEXTBOX SOLO NÚMEROS

1. Implementación de Validación en Tiempo Real:

La primera estrategia para validar solo números en un TextBox es aprovechar eventos en tiempo real. Puedes suscribirte al evento KeyPress y verificar si la tecla presionada es un número. Aquí tienes un ejemplo de cómo implementarlo:

Como hacer que un Textbox Solo acepte Números en C#

El siguiente código ejemplo valida que se digite solo números en un Textbox en C#, para esto se agrega al evento KeyPress de la caja de texto:
private void txtCaracter_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(char.IsNumber(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
{
      MessageBox.Show("Solo se permiten numeros", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
      e.Handled = true;
      return;
}
} 

Este código asegura que solo se ingresen números y controla que las teclas de control (como borrar o retroceso) puedan usarse.

2. Uso de Expresiones Regulares:

Otra técnica poderosa es emplear expresiones regulares para validar el contenido del TextBox. La clase Regex de C# facilita la implementación de esta validación. A continuación, se presenta un ejemplo de cómo hacerlo:

private void TextBox_TextChanged(object sender, EventArgs e)
{
    string input = TextBox.Text;
    if (!Regex.IsMatch(input, "^[0-9]+$"))
    {
        MessageBox.Show("Por favor, ingrese solo números.", "Error de Validación", MessageBoxButtons.OK, MessageBoxIcon.Error);
        TextBox.Text = ""; 
    }
}

Este código verifica si el contenido del TextBox contiene únicamente en números. En caso contrario, muestra un mensaje de error y lo limpia el. 

3. Utilización de Métodos TryParse: 

Una tercera opción es utilizar los métodos int.TryParse o double.TryParse para intentar convertir el texto a un número. Si la conversión tiene éxito, se permite el ingreso; de lo contrario, se rechaza. 

private void TextBox_Leave(object sender, EventArgs e)
{
    if (!int.TryParse(TextBox.Text, out _))
    {
        MessageBox.Show("Por favor, ingrese solo números.", "Error de Validación", MessageBoxButtons.OK, MessageBoxIcon.Error);
        TextBox.Text = ""; // Limpiar el contenido no válido
    }
}

Leer Más:

Valida Solo Números en C#

Al digitar una tecla diferente a un número, se envía un mensaje (se podría comentar la linea del mensaje para que no se muestre) como lo muestra la siguiente imagen:


Digitación correcta:


Garantizar la entrada de datos precisa es esencial en cualquier aplicación, y validar solo números en TextBox en C# es un paso crucial. Al implementar estas estrategias, no solo mejora la integridad de los datos sino que también proporciona a los usuarios una experiencia más intuitiva y libre de errores.

Asegúrate de integrar estas prácticas en tu código para lograr una aplicación robusta y confiable. ¡Explora estas opciones y lleva tu desarrollo en C# al siguiente nivel!

Si quieren conocer esta validación, pero controlando que solo digiten letras, pueden visitar el articulo Solo letras en los Textbox C# - Windows Forms.

Share: