//Carnet Nuevo public string NuevoCarnet() { //VARIABLES string vlc_CarnetNuevo = string.Empty, vlc_AnioActual = string.Empty, vlc_Prefijo = string.Empty, vlc_sentencia = string.Empty, consecut = string.Empty; int Consecutivo; char Letra; //SE EXTRAE EL AÑO DE LA FECHA ACTUAL. vlc_AnioActual = DateTime.Now.Year.ToString(); //SE EXTRAE EL PENULTIMO VALOR DEL AÑO. vlc_Prefijo += vlc_AnioActual[2]; //SE CONVIERTE ESTE VALOR EN UN SU VALOR ASCCI QUE SE HACE SUMANDOLE 65 AL PENULTIMO NÚMERO DEL AÑO Y S EGUARDA EN LA VARIABLE LETRA.. Letra = (char)(int.Parse(vlc_Prefijo) + 65); //SE LIMPIA EL VALOR DEL STRING. vlc_Prefijo = string.Empty; //SE GUARDA LA LETRA YA CONVERTIDA EN EL STRING. vlc_Prefijo = Letra.ToString(); //SE LE CONCATENA EL ULTIMO DIGITO DEL AÑO. vlc_Prefijo += vlc_AnioActual[3]; //SE ESTABLECE LAS VARIABLES DEL CLIENTE SQL. SqlCommand vlo_Command = new SqlCommand(); SqlConnection vlo_Conexion = new SqlConnection(vgc_CadenaConexion); //SE ESTABLECE LA CONEXION CON LA BASE DE DATOS vlo_Command.Connection = vlo_Conexion; // SE ESTABLECE LA SENTENCIA LA CUAL VERIFICA LA CANTIDA DE CON ESE PREFIJO DE CARNET. vlc_sentencia = string.Format("select COUNT(CARNET) from ESTUDIANTES where CARNET like '%{0}%'", vlc_Prefijo); try { //SE ABRE LA CONEXION vlo_Conexion.Open(); vlo_Command.CommandText = vlc_sentencia; // SE VERIFICA QUE SI LA CANTIDAD DE REGISTRO CON ESE PREFIJO ES CERO. if (Convert.ToInt32(vlo_Command.ExecuteScalar()) == 0) { //SI ES CERO SE GUARDA EL CARNE CON EL PREFIJO Y SE CONCATENA QUE ES EL PRIMER REGISTRO. vlc_CarnetNuevo = vlc_Prefijo + "0001"; } else { // DE CASO CONTRARIO SE BUSCA EL MAXIMO VALORCON ESE PREFIJO Y VALOR NÚMERO CO MAYOR. vlc_sentencia = string.Format("select max(CONVERT(int,SUBSTRING(CARNET,3,LEN(CARNET)))) from ESTUDIANTES where CARNET like '%{0}%'", vlc_Prefijo); vlo_Command.CommandText = vlc_sentencia; //EL VALOR CONSECUTIVO OBTENIDO SE LE SUMA UNO PARA GENERAR EL SIGUIENTE CARNET. Consecutivo = int.Parse(vlo_Command.ExecuteScalar().ToString()) + 1; vlo_Conexion.Close(); //SE CONVIRTE ESTE NÚMERO A STRING consecut = Consecutivo.ToString(); // SE VERIFICA LA LONGITUD DE ESTE Y SE LE CONCATENA CEROS ANTES DEL VALOR SEGÚN LO QUE SEA NECESARIO. if (consecut.Length == 1) { vlc_CarnetNuevo = vlc_Prefijo + "000" + consecut; } else { if (consecut.Length == 2) { vlc_CarnetNuevo = vlc_Prefijo + "00" + consecut; } else { if (consecut.Length == 3) { vlc_CarnetNuevo = vlc_Prefijo + "0" + consecut; } else { if (consecut.Length == 4) { vlc_CarnetNuevo = vlc_Prefijo + consecut; } } } } } } catch (Exception) { throw; } // SE RETORNA EL CARNET NUEVO. return(vlc_CarnetNuevo); }