viernes, 30 de octubre de 2009

backup log with truncate_only esta Obsoleto

5 comentarios:
si aun que usted no lo crea en Microsoft Sql server 2008 los sql siguiente:

backup log with truncate_only
backup log with no_log

YA NO FUNCIONAAAAAAAAAA osea que estan OBSOLETOS
Que Estrés tons se estaran preguntando seguramente como rayos bajo el tamaño de mi log.

Pues le tengo 2 cosas que informarle
1.) usted esta obsoleto
2.) si continua leyendo dejara de estarlo =)


bueno como lo hago ahora, facil, de echo hay varias formas de hacerlo
opcion 1 - hacer un shrink a toda la db, ojo tambien baja el log

USE [nortwind]
GO
DBCC SHRINKDATABASE(N'nortwind' )
GO


opcion 2 - si lo quieren hacer mas controlado a la antigua

primero trunquemos el log

USE [nortwind]
GO
DBCC SHRINKFILE (N'nortwind_log' , 0, TRUNCATEONLY)
GO


segundo y ultimo
bajemos el tamaño del log


USE [nortwind]
go
ALTER DATABASE nortwind
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 80 MB.
DBCC SHRINKFILE (nortwind_log, 80);
GO
-- Reset the database recovery model.
ALTER DATABASE nortwind
SET RECOVERY FULL;


Espero que les sirva.
Ver

miércoles, 28 de octubre de 2009

Encriptar el Web.Config

1 comentario:
El verdadero titulo de este post deberia ser encriptar una sección del web config, pero estoy seguro que lo que quieren es ocultar el es el connectionString.
Vamos a utilizar el proveedor de configuración protegida
RSA y la herramienta aspnet_regiis.exe para poder lograr la encriptación de secciones del Web.Config.

Es posible importar y exportar las claves RSA de un servidor a otro, esto nos ayudará a utilizar el mismo cifrado en varios servidores.

Para encriptar la sección connectionString del Web.Config vamos a realizar los siguientes pasos:

1. Vamos a crear un sitio llamado EncriptacionRSA

2. Vamos a agregar el siguiente código en la sección connectionString dentro del archivo Web.Config

< connectionStrings >
< add name="MyLocalSQLServer"
connectionString="Initial Catalog=northwind;
data source=localhost;user id=sa;password=password"
providerName="System.Data.SqlClient"/ >
< /connectionStrings >


3. Ahora vamos a la línea de comandos para ejecutar la siguiente instrucción:

%WinDir%\Microsoft.NET\Framework\\aspnet_regiis -pe "connectionStrings" -app "/EncriptacionRSA"

El comando anterior, con el modificador -app, asume que hay un directorio virtual IIS llamado MachineRSA. Si está utilizando el servidor Web de Visual Studio .NET 2005 en lugar de IIS, utilizaremos el modificador -pef, que nos permitirá especificar la ubicación física del directorio del Web.Config

%WinDir%\Microsoft.NET\Framework\\aspnet_regiis.exe -pef "connectionStrings" C:\Projects\EncriptacionRSA

Si el comando es ejecutado de forma correcta deberemos de obtener el siguiente resultado:

Encrypting configuration section...
Succeeded!

Las claves RSA se almacenan en la siguiente ruta:

\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

Una vez que ejecutamos esto, en el archivo Web.Config tendremos el siguiente resultado:

< connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider" > < EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#" >
< EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" / >
< KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#" >
< EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" >
< EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" / >
< KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#" >
< KeyName >Rsa Key< /KeyName >
< /KeyInfo >
< CipherData >

< CipherValue>R7cyuRk+SXJoimz7wlOpJr/YLeADGnwJVcmElHbrG/B5dDTE4C9
rzSmmTsbJ9Xcl2oDQt1qYma9L7pzQsQQYqLrkajqJ4i6ZQH1cmiot8ja7Vh+yItes7TRU
1AoXN9T0mbX5H1Axm0O3X/285/MdXXTUlPkDMAZXmzNVeEJHSCE=
< /CipherValue >
< /CipherData >
< /EncryptedKey >
< /KeyInfo >
< CipherData >

< CipherValue>d2++QtjcVwIkJLsye+dNJbCveORxeWiVSJIbcQQqAFofhay1wMci8FFlb
QWttiRYFcvxrmVfNSxoZV8GjfPtppiodhOzQZ+0/QIFiU9Cifqh/T/7JyFkFSn13bTKjbYmHObKA
zZ+Eg6gCXBxsVErzH9GRphlsz5ru1BytFYxo/lUGRvZfpLHLYWRuFyLXnxNoAGfL1mpQM7M46x5Y
WRMsNsNEKTo/PU9/Jvnh/lT+GlcgCs2JRpyzSfKE7zSJH+TpIRtd86PwQ5HG3Pd2frYdYw0rmlml
I9D
< /CipherValue >
< /CipherData >
< /EncryptedData >
< /connectionStrings >

Ahora vamos a comprobar si el encriptación y desencriptación funciona correctamente, para esto vamos a nuestra página Default.aspx y vamos a agregar el siguiente código de la sección HTML

< %@ Page Language="C#" % >
< script runat="server" >
protected void Page_Load(object sender, EventArgs e) {
Response.Write("Clear text connection string is: " + ConfigurationManager.ConnectionStrings
["MyLocalSQLServer"].ConnectionString);
}
< /script >

< html >
< body/ >
< /html >

MyLocalSQLServer es la cadena de conexión que especificamos en el Web.Config

Por último para regresar la sección del configurationString a su estado original vamos a ocupar el siguiente comando:

%WinDir%\Microsoft.NET\Framework\\aspnet_regiis -pd "connectionStrings" -app "/EncriptacionRSA"

y para si ocupamos una ruta física ocupamos el siguiente comando:
%WinDir%\Microsoft.NET\Framework\\aspnet_regiis -pdf "connectionStrings" C:\Projects\EncriptacionRSA

Si el comando funciona correctamente obtendremos el siguiente resultado:

Decrypting configuration section...
Succeeded!
Ver

Chiste de los indios

No hay comentarios.:
Chistes:

Los indios
En pleno otoño, los indios de una reservación muy lejana le preguntan a su nuevo jefe si el próximo invierno será frío o templado. Ya que el jefe pertenece a una generación modera y jamás aprendió los secretos de sus ancestros, mira al cielo y no puede predecir qué va a suceder con el clima. Aun así, les advierte que recojan leña. Como es un hombre práctico, poco tiempo después llama por teléfono al servicio meteorológico nacional.
¿El próximo invierno será muy frió? – Pregunta.
– Es probable – le contestan.
El jefe vuelve con su pueblo y les dice que se ponga a juntar más leña.
Una semana después, llama de nuevo por teléfono.
– ¿Será un invierno muy frio? -- Vuelve a preguntar.
– Sí, será un invierno muy frio – le responden.
El jefe vuelve a ordenar a su gente recolectar toda la leña que puedan.
Dos semanas más tarde, el feje hace otra llamada telefónica:
¿Están seguros que el próximo invierno será muy frio?
– Completamente – le contestan. – va a ser uno de los inviernos más fríos que se hayan conocido.
– ¿y cómo están tan seguros? – indaga el jefe.
– ¡Porque los indios esta juntando leña como locos!

Esposos:
La esposa le pregunta a su esposo:
¿Te fijaste, cariño? Compré un nuevo cepillo para el inodoro.
– Si – responde el hombre –, pero me sigue gustando más el papel.

Fuente: Revista selecciones septiembre 2009
Ver

jueves, 15 de octubre de 2009

Totalizar en el pie de GridView ( totals GridView footer)

8 comentarios:
Seguramente han necesitado totalizar una columna de en un gridview.



lo primero es que tiene que hacer el llenado del grid:

Base de datos:

Nortwind

Librerias:

using System.Data;
using System.Data.SqlClient;

Para mostrar el pie de página, tiene que establecer el atributo de ShowFooter="True".

LLENADO:

string sql="SELECT OrderID, ProductID, UnitPrice, Quantity, UnitPrice * Quantity AS total";
sql += " FROM [Order Details]";
sql += " WHERE OrderID=10285";
SqlConnection cn = new SqlConnection(STRINGCN);
SqlDataAdapter da = new SqlDataAdapter(sql, cn);
DataSet ds=new DataSet();
da.Fill(ds, "Details");
GridView1.DataSource = ds.Tables["Details"];
GridView1.DataBind();

tenemos que dimencionar una variable para totalizar: decimal dTotal = 0;
ahora vamos a capturar el evento: RowDataBound

ejemplo completo:

decimal dTotal = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
dTotal += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "total"));
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[3].Text = "Total:";
e.Row.Cells[4].Text = dTotal.ToString("c");
e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Right;
e.Row.Font.Bold = true;
}
}
Ver

miércoles, 14 de octubre de 2009

GDI+ Drawing ASP NET Cuaros, circulos, graficas (pie,square,elipse)

1 comentario:
Seguramente mas de algun día tendran la necesidad de crear cuadros o graficas de pie en una pagina asp net que sea dinamica, bueno con la libreria GDI+ Drawing lo pueden lograr.

En este primer ejemplo vamos hacer un cuadro y una linea.

Lo primero es llamar las librerias siguiente:
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Text;

ahora en el evento load de su pagina ingrese el siguiente codigo:

protected void Page_Load(object sender, EventArgs e)
{
Bitmap objBitmap; //inicio del objeto
Graphics objGraphics;

objBitmap = new Bitmap(400, 440); // tamaño que ocupara en la pagina
objGraphics = Graphics.FromImage(objBitmap);
objGraphics.Clear(Color.White); // Color de fondo de la pantalla

Pen p = new Pen(Color.Yellow, 0); // color de la linea del circulo.

Rectangle rect = new Rectangle(0, 0, 100, 50); // creado el cuadro
objGraphics.DrawRectangle(p, rect); // enviando a pantalla el cuadro

objGraphics.DrawLine(p,0,0,100,100); // creando linea

//enviando a pantalla atraves de una imagen.
objBitmap.Save(Response.OutputStream, ImageFormat.Gif);
objBitmap.Save(Server.MapPath("x.jpg"), ImageFormat.Jpeg);
objBitmap.Dispose();
objGraphics.Dispose();

}

el resultado esto sera asi:


si quiere un elipse solo tiene que cambiar
objGraphics.DrawRectangle(p, rect);
por
objGraphics.DrawEllipse(p, rect);

y tendran un circulo al lugar de un cuadro
ahora que estan listo para un ejemplo de verdad voy a crear pie con letras y colores.
para probarlo solo copien el siguiente codigo en su evento load.
no olvide agregar las librerias:

using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Text;

//codigo del load

Bitmap objBitmap;
Graphics objGraphics;

objBitmap = new Bitmap(400, 440);
objGraphics = Graphics.FromImage(objBitmap);
objGraphics.Clear(Color.White);
Pen p = new Pen(Color.Yellow, 0);
Rectangle rect = new Rectangle(10, 10, 280, 280);
objGraphics.DrawEllipse(p, rect);

Brush b1 = new SolidBrush(Color.Red);
Brush b2 = new SolidBrush(Color.Green);
Brush b3 = new SolidBrush(Color.Blue);
objGraphics.FillPie(b1, rect, 0f, 60f);
objGraphics.FillPie(b2, rect, 60f, 150f);
objGraphics.FillPie(b3, rect, 210f, 150f);

FontFamily fontfml = new FontFamily(GenericFontFamilies.Serif);
Font font = new Font(fontfml, 16);
SolidBrush brush = new SolidBrush(Color.Blue);
objGraphics.DrawString("Mi Primer PIE =)", font, brush, 70, 300);
objBitmap.Save(Response.OutputStream, ImageFormat.Gif);
objBitmap.Save(Server.MapPath("x.jpg"), ImageFormat.Jpeg);
objBitmap.Dispose();
objGraphics.Dispose();


el resultado es así:



Bueno espero que les sirva de algo.

Este post es para mi amigo Fernando, espero que te ayude con tu clavo.
Ver

viernes, 9 de octubre de 2009

Formatos de tiempo usando la función ToString

No hay comentarios.:
Formatos de hora

Este post es un poco simple pero siempre les pueda ayudar en algo.

vamos a mostrar la forma de mostrar fechas.
Ejemplo

DateTime d = DateTime.Now;
Label1.Text = d.ToString("MM/dd/yyyy hh:mm tt");

Otras formas de utilizarlos.


























Format Style Output
hh:mm : 11:17
hh:mm ss : 11:17 36
hh:mm ss tt : 11:17 36 AM
HH:mm ss tt : 11:17 36 AM
HHmm : 1117
MM-dd-yyyy HH:mm ss tt : 10-09-2009 11:17 36 AM
MM-dd-yyyy hh:mm ss tt : 10-09-2009 11:17 36 AM
Ver