Working with Asp.Net variables in c#

Variables don’t automatically maintain state across page calls in ASP.NET. Asp.Net Page has a life cycle and being stateless, the information is lost at the end of this cycle, after a request has been served on the client side. One way is to use View-state for the persistence of the variables, but this significantly increases the size of a page and the data sent and received, making it slow. There are several solution for this.

  • SessionState
  • hidden fields
  • querystrings
  • Here is SessionState example

    // saving aHiddenVariable 
    // retreiving aHiddenVariable 
    string aHiddenVariable = (string)Session["aHiddenVariable"];

    Here is hidden field example.

    In HTML, we simply need to create:

    <input type="hidden" id="aHiddenVariable">

    To set it’s value in javascript:

    document.getElementById("aHiddenVariable").value = "myValue"

    In ASP.NET code-behind, you use the Request object to retrieve the value.

    string aHiddenVariable= (string)Request.Params["aHiddenVariable"];

    Here is a sample for QueryString

    // setting quesryString
    // set s=feed, "text" to search
    // retrieve variable
    string textToSearch= Request.QueryString["s"];

    Working with Files in c# – intoduction

    Here are some of many classes available to work with files

    using TextReder and TextWriter classes

    string filePath = @"E:\TestDocument.txt";
    // open file to read
    TextReader tr = File.OpenText(filePath);
    // must close file after reading
    string filePath = @"E:\TestDocument.txt";
    // open file to read
    TextReader tr = File.OpenText(filePath);
    // must close file after reading

    using StreamReader and and StreamWriter classes

    // open file to read file 
    StreamReader sr = new StreamReader(filePath); 
    // must close file after writing
    // open file to write
    StreamWriter sw = new StreamWriter(filePath);
    sw.AutoFlush = true;
    sw.WriteLine("Hello World");
    // must close file after writing

    Reading / writing To IsolatedStorageFile using IsolatedStorageFileStream

    // declare file IsolatedStorageFile
    IsolatedStorageFile isoStore = 
    // create file Stream
    IsolatedStorageFileStream isoFS =
                    new IsolatedStorageFileStream("temp.txt", FileMode.Create, FileAccess.Write);
    // write to file
    sw = new StreamWriter(isoFS);
    sw.WriteLine("in iso storage" + "\n");           
    sw.WriteLine("in iso storage FInished");
    // must remember to close or the resouce is kept locked
    // read from IsolatedStorageFile
    isoFS = new IsolatedStorageFileStream("temp.txt", FileMode.Open, FileAccess.Read);
    sr = new StreamReader(isoFS);

    Working with Folder properties in C#

    Here is a simple programs that evaluates different properties for a folder in Windows

    class Folder : IComparable
            public string name;
            public string path;
            public int size;
            public Folder(string _name, string _path, int _size)
                name = _name;
                path = _path;
                size = _size;
            #region IComparable Members
            public int CompareTo(object obj)
                Folder folder = (Folder)obj;
                return folder.size.CompareTo(this.size);
    class SizeClculator
            public static ArrayList directories = new ArrayList();
            public static void GetFolders(string path)
                DirectoryInfo di = new DirectoryInfo(path);
                if (di.GetDirectories().Length > 0)
                    foreach (DirectoryInfo dir in di.GetDirectories())
                    int size = 0;
                    if (di.GetFiles().Length > 1)
                        FileInfo[] fileInfo = di.GetFiles();
                        foreach (FileInfo fi in fileInfo)
                            size = size + (int)fi.Length;
                    directories.Add(new Folder(di.Name, di.FullName, size));
            public static ArrayList GetFoldersList()
                return directories;
    class Program
            static void Main(string[] args)
                string filePath = @"D:\Common\Test";
                ArrayList al = SizeClculator.GetFoldersList();
                foreach (Folder folder in al)
                    Console.WriteLine("Name:" +
                        "  || " + +
                        "  || Path: " + folder.path +
                        "  || Size: " + folder.size);

    Working with StringBuilder in C#

    This Post will look in to several Methods provided with StringBuilder class. There are several ways to declare and initialize an instance of StringBuilder class.

    // declare StringBuilder instance
    StringBuilder sb;
    // default constructor
    sb = new StringBuilder();
    // new stringbuilder with initial capacity 
    sb = new StringBuilder(10);
    // new stringbuilder with with a new string
    sb = new StringBuilder("");
    // initial with initial capacity
    // and max limit over capacity
    sb = new StringBuilder(10, 100);
    // new stringbuilder with with a new string
    // and max limit over capacity
    sb = new StringBuilder("", 1000);
    // new stringbuilder with new string
    // start index to place string
    // length of string
    //  max limit over capacity
    sb = new StringBuilder("", 10, 16, 1000);

    Here are some of the built-in methods

    // append string to stringbuilder
    // get current capacity
    Console.WriteLine("current string capacity: " + sb.Capacity);
    // compare string with stringbuilder
    // get the hash code for the string builder
    // get the type for the object
    // get the length for the string
    // gt the capacity for stringbuilder
    // gt the max capacity for stringbuilder
    // get the string anfd write to console
    // insert char at specific index
    Console.WriteLine(sb.Insert(2, '-'));
    // replace a char at specific index
    Console.WriteLine(sb.Replace('-', ' '));
    // remove a char from specific index
    Console.WriteLine(sb.Remove(2, 1));

    Following methods allows us to extend our stringbuilder with appending value at the end.

    // Add string at the end of stringbuilder
    sb.Append("new string");
    // Add string with end of line at the end of stringbuilder
    sb.AppendLine("new string");
    // Add string at the end of stringbuilder, 
    // with information about the format etc
    sb.AppendFormat(new CultureInfo("en-US"),
                    "# # # ### ##", new char[] { 'A', 'S', 'D', 'F' });

    Following methods show how can we extend our string builder using insert method which has 18 overloads.
    most common are as follows

     // insert char at 0 index 
     sb.Insert(0, '0');
     // insert bool at 0 index
     sb.Insert(0, true);
     // insert char Array at 0 index
    sb.Insert(0, new char[] { '0', '1' });
    // insert double value at 0 index
    sb.Insert(0, 10.00);
    // insert decimal value at 0 index
    sb.Insert(0, 10);
    // insert char Array value, from  index 2 to 3,
    // at index 0 of string builder
    sb.Insert(0, new char[] { '1', '2', '3', '4' }, 1, 1);
    // insert string at 0 index
    sb.Insert(0, "a String");