Sunday, December 26, 2010

How to encrypt and decrypt password in SQL Server

Here you can find nice and full solution to encrypt and decrypt password for use in SQL Server.

Using:
declare @value VARCHAR(8000)
--Encrypt
set @value =  dbo.fnEncDecRc4('Magic Word','password')
--Decrypt
select dbo.fnEncDecRc4('Magic Word',@value)
Enjoy!

Saturday, December 25, 2010

Log Viewer Pro

Many years I’m use the best file manager Total Commander (Windows commander in the past). In the home site was found link to the site http://www.totalcmd.net which include additional plugins and utilities. But I would  present only one very usability utility – Log Viewer Pro.  Current application dedicated to viewing logs and available to using in every text file . Every level of Log may be define in different color, a program is free (for home users) and not required install.

Screenshot:

Main features of viewer:
Fast scrolling, eats low memory.
Supports any file size (4 Gb and larger).
Multitabbed interface.
Auto-reload file, Follow tail mode.
Allows to highlight some lines (e.g. "errors", "warnings").
Allows to view encodings: ANSI, OEM, Unicode LE, Unicode BE etc.
File search (both forward and backward).

Download here.

Size: 650 KB
Author: Alexey Torgashin

Sunday, December 05, 2010

Snippet editor

In my work I'm often use snippets, but by old habit I created every time new snippet manual. Today found nice solutions to my  suffering -  Snippet Editor by BillMcC. Snippet editor ready to work with all version of Visual Studio, support C# and VB snippet, easy interface and big help to programmer.
Link to download.

Tuesday, June 29, 2010

Generate random string

Current code is generate string in defined length and include chars, numbers and symbols.

public static string GetRandomString(int size)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
int[] symbol = new[] { 33, 36, 38, 64, 94 };
int[] digits = new[] { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 };
int symbolsAmount = size / 3;
int digitAmount = size / 3;
for(int i = 0; i < size; i++)
{

int switcher = random.Next(3);
char ch;
if(switcher == 0 && symbolsAmount > 0)
{
int id = random.Next(symbol.Length);
ch = Convert.ToChar(symbol[id]);
symbolsAmount--;
}
else if(switcher == 1 && digitAmount > 0)
{
int id = random.Next(digits.Length);
ch = Convert.ToChar(digits[id]);
digitAmount--;
}
else
{
bool isLower = random.Next(2) == 0 ? false : true;
ch = Convert.ToChar(
Convert.ToInt32(
Math.Floor(26 * random.NextDouble() + ((isLower) ? 65 : 97))
)
);

}
builder.Append(ch);
}

return builder.ToString();
}

Wednesday, June 23, 2010

Monday, June 21, 2010

Tuesday, April 27, 2010

VS 2008 SP1 deletes .dbml designer file – a solution

Also me was surprised after installation Visual Studio 2008 SP1. every little change in dbml hierarchy give raise to deleting designer file. Short googling return elegant solution:
In partial class move all using statements after namespace
Linq

Original code:
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Reflection;

namespace Test
{
partial class DataClassesDataContext
{
//...
}
}



New Code:

namespace Test
{
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Reflection;

partial class DataClassesDataContext
{
//...
}
}



Right click on the .dbml  file and run “Run Custom Tool”.

Enjoy!

Thursday, February 11, 2010

Twice calling Render in ASP.NET page

I have web page, which use HtmlTextWriter for creating HTML in client. List<T> get data from DB and start in loop to add HTML tags, attributes and more.  I hoped to create page with div’s, images and text, but in the debug phase i saw the Render() method called twice. After long tests and researches was found out what is a problem. In creating image <img>, a attribute “src” get value from DB and in one images “accidently” a value was …null. You can say “so what?” A problem exist not in HTML page, a problem concealing in IIS. If page has attribute <…src=”” …/> or<… src=”#” …> that makes IIS load the page twice. Good luck!


kick it on DotNetKicks.com

Wednesday, January 06, 2010

Object Property as Key in Collection

A innovation of Dictionary got excellent solution in stocking data. After countless uses I decided to find alternative method in combination of key and object and now I offering KeyedCollection. Little example will present a using of aforementioned object:

Simple classes:

public class User
   {
       public int Id { get; set; }
       public string Name { get; set; }
       public Address Address { get; set; }
   }

   public class Address
   {
       public string Country { get; set; }
       public string City { get; set; }
       public string Zip { get; set; }
   }

Two object that inherits abstract KeyedCollections:

/// <summary>
///A key is ID of player
/// </summary>
public class UserCollection : KeyedCollection<int, User>
{
    //Implementing member
    protected override int GetKeyForItem(User item)
    {
        return item.Id;
    }
}

/// <summary>
/// A key is User Name
/// </summary>
public class UserCollection1 : KeyedCollection<string, User>
{
    //Implementing member
    protected override string GetKeyForItem(User item)
    {
        return item.Name;
    }
}

 

Little example to using:

public class Test
{
    public TestById()
    {
        var userCollection = new UserCollection();
        userCollection.Add(new User
                               {
                                   Id = 5,
                                   Name = "John Smith",
                                   Address = new Address
                                                 {
                                                     City = "NY",
                                                     Country = "USA",
                                                     Zip = "12345"
                                                 }
                               });

        userCollection.Add(new User
                               {
                                   Id = 17,
                                   Name = "James Brown",
                                   Address = new Address
                                                 {
                                                     City = "LA",
                                                     Country = "USA",
                                                     Zip = "54321"
                                                 }
                               });

        Console.Write(userCollection[6]);
    }
     public void  TestByName()
    {
        var userCollection = new UserCollection1();
        userCollection.Add(new User
                               {
                                   Id = 5,
                                   Name = "John Smith",
                                   Address = new Address
                                                 {
                                                     City = "NY",
                                                     Country = "USA",
                                                     Zip = "12345"
                                                 }
                               });

        userCollection.Add(new User
                               {
                                   Id = 17,
                                   Name = "James Brown",
                                   Address = new Address
                                                 {
                                                     City = "LA",
                                                     Country = "USA",
                                                     Zip = "54321"
                                                 }
                               });

        Console.Write(userCollection["John Smith"]);
    }
}

 

 

If a project in VS 2008 you can run in heritable object LINQ requests and more. Enjoy!

kick it on DotNetKicks.com