Property bag is a feature available in Windows SharePoint Services 3.0. It's nothing but a hash table of Key-Value pairs. It allows to add properties to objects in a SharePoint site.

Why to Use SharePoint Property Bag
The Property Bag hash table for a site can store any metadata as Key-Value pairs such as connection strings, server names, file paths, and other settings needed by your SharePoint application. Most of the time, we will store the above settings in configuration file, which is common to the entire web application. If there is any setting specific each and individual sites in the web application, then we have to maintain that many entries in the config file. To overcome the above scenario, we can use the SharePoint Property Bag.
There is no specific out of box user interface available to set or to read the property bag settings. In WSS 3.0, property bag values have to set/get using the object model. There is an option available in SharePoint designer to set/get the property bag settings. Go to Site -> Site Settings. click on the Parameters tab. On this tab, you will be able to manipulate all of your custom property bag values.


How to Use
SPSecurity.RunWithElevatedPrivileges(delegate()
{
try
{
using (SPSite RootSite = new SPSite(URL))
{
using (SPWeb SiteCollection = RootSite.OpenWeb())
{
try
{
SiteCollection.AllowUnsafeUpdates = true;
if (SiteCollection.AllProperties.ContainsKey("ConnectionString"))
{
ConnectionString =
SiteCollection.AllProperties["ConnectionString"].ToString();
}
SiteCollection.Properties["siteID"] = siteID;
SiteCollection.Properties.Update();
SiteCollection.AllowUnsafeUpdates = false;
}
catch (Exception ex)
{
}
}
}
}
catch(Exception ex)
{
}
});