C#: Save a Form’s Size and Location

In an attempt to enhance user experience it may be desirable to save the size and location of a Form. When dealing with customizable user settings, it is important to determine where to persist the user’s applications settings. The Application class has a UserAppDataRegistry property that references the HKEY_CURRENT_USER\Software\[Control.CompanyName]\[Control.ProductName]\[Control.ProductVersion]. registry key in the user’s profile (If this key does not exist it is created). Here is a basic example of storing a form's state in the user's registry profile:
	private void Form_Load(object sender, EventArgs e)
        {
            this.WindowState = (FormWindowState)FormWindowState.Parse(WindowState.GetType(), Application.UserAppDataRegistry.GetValue("WindowState", FormWindowState.Normal).ToString());
            if (this.WindowState == FormWindowState.Normal)
            {
                int x = (int)Application.UserAppDataRegistry.GetValue("LocationX");
                int y = (int)Application.UserAppDataRegistry.GetValue("LocationY");
                this.DesktopLocation = new Point(x, y);
                int w = (int)Application.UserAppDataRegistry.GetValue("WindowSizeW");
                int h = (int)Application.UserAppDataRegistry.GetValue("WindowSizeH");
                this.Size = new Size(w, h);
            }
        }

        private void Form_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.UserAppDataRegistry.SetValue("WindowState", this.WindowState);
            Application.UserAppDataRegistry.SetValue("WindowSizeH", this.Size.Height);
            Application.UserAppDataRegistry.SetValue("WindowSizeW", this.Size.Width);
            Application.UserAppDataRegistry.SetValue("LocationX", this.DesktopLocation.X);
            Application.UserAppDataRegistry.SetValue("LocationY", this.DesktopLocation.Y);
        }



   

SQL: Convert Integer to DateTime

If presented with a date represented as an integer in the format of 'YYYYMMDD', you can convert the number to a date with the following:

declare @_date as integer
set @_date = 20110910

SELECT CONVERT(DATETIME, CONVERT(CHAR(8), @_date))



   

SQL: Get Day of Week (Transact-SQL)

To retrieve day of week information using T-SQL you can use the DATENAME and DATEPART functions. The DATENAME function returns a character string of the datepart of a date. The DATEPART function returns an integer of the datepart of a date.

SELECT 
	DATENAME(dw,GETDATE()) [Day Name]     -- returns the day of week name	
	,DATEPART(dw,GETDATE()) [Day Number]  -- returns the day of week number
	,DATENAME(dy,GETDATE()) [Day of Year] -- returns the day of year
	,DATEPART(wk,GETDATE()) [Week Number] -- returns the week number of the year
	, GETDATE() [Todays Date]

 

Transact SQL results