Change to Company List SQL Query

Made the Query a Left Join, so that Companies without any buildings
associated with them would still appear in the list. They are considered
"Not Active".
Also Changed form to only try and select a building from the "Other
Building" listbox if there are in fact any buildings present. And if
not, to populate the fields with a blank building in order to clear any
existing information from the display.
What happens when Company or Building is empty?

Worked on setting defaults and clearing errors that arose when a company
was selected that had not yet had any buildings assigned to it.
Modified Contact Query

For some reason I have duplicate values in my relations tables. That
issue aside, Adding a DISTINCT clause to the query removes the potential
duplicate Key exception.
Changes to PopulateFields(Building)

Now checks for a null value in the building's street, since if that is
null, there is no building values. Keeps the form from turning around
and immediately trying to find a company if they building passed in was
empty.
Added SQLColumn(string, int)

Added constructor to SQLColumn to allow the creation of an object with
an integer value.
Added SQLColumn Constructors

Also included SQLColumn(string, decimal) and SQLColumn(string, bool).
StyleCop and Exception handling

Added a space in MainForm that had gone unnoticed and AddNewBuilding now
properly throws an exception when something goes wrong.
Added CommitToDatabase() method to Building

Added a method to Building to handle commits, which raised a few items
in the handling of Insert Queries. Changed the insertion of apostrophes
from in the Query function to the individual SQLColumn constructors.
Anything NULL will no longer have quotes around it, so it should go in
correctly.
Error Checking for SQLColumn

Added a static Column List that is compared against every time a new
SQLColumn object is created. Must be updated as new columns are added.
Also changed a call to Debug to an exception and added a new exception
based on the check made against the Column List.
Added the start of a form to Insert Inspections
Renamed Groupbox for clarity
Moved List Structs to seperate file

Moved the CompanyListItem and BuildingListItem to their own separate
file and made them public.
My intention is that the company and building information can be loaded
from the database at runtime, and that child forms can access that
information on the main form rather than regenerate it themselves.
Begin work on Generic Database List

Started replacing CompanyListItem and BuildingListItem with a generic
class called DatabaseListItem. Sorting and filtering operations can move
to this class and should make the MainForm file a little easier to read.
Added Regenerate() Method to DatabaseList class

Regenerate is called upon initialization, but can be called at any time
to re-fill the data held in the class.
Also made the DatabaseListItem struct private within the class - there
shouldn't be a reason anything outside needs to see it.
Rewrite of Company/Building Lists

Instead of constantly running LINQ queries in the MainForm class for
each of the dictionaries, we've moved all of the sorting and selection
functions to a separate class called "DatabaseList". This reduces the
amount of code required to update the listboxes on the main form or
select an item from those lists and should provide a way of maintaining
lists for use among all forms, rather than having each form perform it's
own queries.
Made the Company and Building Lists static

Should enable child forms to access them in a simpler manner.
Added Properties for Lists in Main Form

Exposed the Company and Building Lists via simple public static
properties.
Added Method to GetFilteredList

Added a Method to DatabaseList that also accepts an array of strings
which are to be excluded from the result.
Modified AddContact to use DatabaseLists on Main

Removed queries and linq and instead added references to the
DatabaseLists maintained on the Main form. Also made use of the new
Method for GetFilteredList to work with associating buildings/companies.