I would like to create a C# ASP.Net application and query (read-on) information from our companies SharePoint site. Is this possible and if so how?
The best way for a standalone application to read data from a Sharepoint site from outside the farm is through Sharepoint Web Services. That page has a high-level summary of what services are available and what each one does. In Visual Studio, you can connect to these by creating Web References to the desired services in your application.
Probably want to use the Lists.asmx service. From my memory, you should be able to reference the sharepoint services by http:///_vti_bin/Lists.asmx. There are services for data access, site/page management, security, etc..
As a default, If you have a list on a page called HR on a server called MyServer, it would be http://MyServer/HR/_vti_bin/Lists.asmx. Each new site will have these web services automatically created.
You can also reference the SAMS book "Microsoft Sharepoint 2007 Development". I used that for previous projects and it help.
Lists.asmx is probably your best bet. If you are certain your ASP.NET website will live on the same server as SharePoint you could use the SharePoint object model.
Note that SharePoint lists are not the same as database tables. Things like foreign key constraints, unique keys, etc. are not as robust in SharePoint.
SharePoint lists provide a lot of value, but that also has a cost in the things above plus also in performance.
So who is going to mention the obtuse XML these services pass back?
I agree with Rex M. Also you can help yourself with Linq to SharePoint in order to biuild and run the query It lets you connect via WS or the Object model as well, so you can use it inside or outside the WSS server.