Latest Entries

Sql JOINS and the Sql Server Management Studio Query Designer

calendar_today 28 November 2007 13:19

SQL SQL Server Express ADO.NET

There are a whole bunch of articles, blog entries and tutorials that seek to explain how SQL JOINS work. Some of them are excellent, and others are just confusing. The reason I am adding my go at trying to clarify JOINS to the mix is to highlight how proper use of the tools available to you can seriously reduce the chances of getting the JOIN syntax or type wrong. Since JOINS are all about how to relate data from one table to another, I thought it appropriate to illustrate the subject using Parents and Children (who may, or may not be related to eachother). So let's meet the families.

Search Engine-Friendly Custom Paging with the GridView and LINQ to SQL

calendar_today 20 November 2007 22:54


The main problem I find with the built-in paging functionality offered by the GridView control is that the paging links are managed by Javascript. This is a bit awkward for people who disable, or don't have Javascript in their browser, but more importantly, the links can't be triggered by search engines. If you rely on the GridView to paginate links to content, this can prove disastrous, and much of your content will be inaccessible to search engines. Motivated by Scott Guthrie's series of blog entries on LINQ to SQL, available in the .Net 3.5 framework, I set about getting some custom paging working with html paging links.

Migrating from Sql Server to Access in ASP.NET

calendar_today 16 November 2007 10:45


Yes, you did read that correctly. Here's the situation: you know that Sql Server is by far the superior database system (if indeed MS Access can be called a database system). You also know that MS Access databases are not recommended as a data store for web applications. You are comfortable with Sql Server, and haven't really looked at Access for years - if at all. But now, your boss or your client wants you to use it in the next project.

How to get your forum question answered - avoid thread-jacking

calendar_today 13 November 2007 12:33


If you have just been directed to this page, it may be because you have just thread-jacked. If you are not sure what that means, read on for an explanation, and some guidance.

An ASP.NET Search Engine with MS Access for optional search criteria

calendar_today 12 November 2007 15:15

ASP.NET 2.0 MS Access ADO.NET ASP.NET Web Forms

Creating a search interface for one user-supplied value is pretty straightforward: a TextBox for input, a Button and some SQL that searches one or more fields where the values are LIKE '%' + @searchterm + '%' is all that is needed. While it works, this approach is not very flexible. For example, what if you wanted to search for an Employee whose last name contains "a", and don't want those where the first name or city contains "a"? The traditional solution to this is to dynamically construct the SQL statement based on what values were passed by the user. However, building the SQL string can get repetitive, boring and messy. Here is a cleaner way to allow the user to narrow down searches across multiple criteria with the use of optional parameters, and just 3 lines of programming code.

Reading Text files into Access with ASP.NET

calendar_today 09 September 2007 21:20


The Jet 4.0 OLEDB driver is a remarkable beast. Not only will it allow connections to MS Access .mdb files and MS Excel spreadhseets, but it will also allow you to connect to and query a variety of text file formats. Here are some examples that illustrate this capability when applied to importing text based data into Access.

Referencing CheckBoxes in GridView, Repeater and DataList controls

calendar_today 30 August 2007 10:29

ASP.NET 2.0 ASP.NET Web Forms

If you want to find which CheckBoxes were selected in a multiple record DataBound control, the way that you you do it depends on the type of control you use. These examples demonstrate a CheckBox control being added to a GridView, Repeater and a DataList. For simplicity, I have placed all three controls on the same page, and used the Access version of theNorthwind database. One AccessDataSource control is used to bind the results of "SELECT [CategoryID], [Description], [CategoryName] FROM [Categories]" to all three controls.

ViewState, form fields, labels and Javascript

calendar_today 25 August 2007 12:34

ASP.NET 2.0 Javascript ASP.NET Web Forms

An interesting question came up on the ASP.NET forums asking why a TextBox which has its value changed by client-side Javascript persists those changes across postbacks, while a Label does not. And in a nut shell, this question covered two of the biggest causes of confusion among newcomers to ASP.NET: the difference between ViewState and IPostBackDataHandler; and the difference between client-side operations and server-side operations.

Bind Data From a SqlDataSource to a Label

calendar_today 25 August 2007 10:32


Label controls in ASP.NET don't have a smart tag that allows you to select a data source, so at first glance, it is not easy to see how to bind a value returned from a SqlDataSource or AccessDataSource control to the label. Here's how to programmatically access the data returned by such a DataSource and apply it to a non-databound control.

Object reference not set to an instance of an object and INamingContainer

calendar_today 21 August 2007 11:36

ASP.NET 2.0 ASP.NET Web Forms

A list of standard ASP.NET web controls that implement INamingContainer

Consuming RSS feeds in an ASP.NET page

calendar_today 18 August 2007 23:12

ASP.NET 2.0 ASP.NET Web Forms

I like reading Scott Guthrie's blog. Trouble is, I get so busy, I forget to go over there and have a look to see what's new. I was searching for something the other day, and stumbled across someone else's blog (I forget whose), but I noticed that they had the 5 most recent items in Scott's blog embedded in their home page. It was only then that I discovered that Scott Mitchell has written a whole load more tutorials on Data Access, and that these have been available for a while. So I got to thinking that I should add a feed from Scott G's site onto the home page here, so I can be updated more quickly. Here's the bare bones of how I did it.

Debugging Classic ASP pages in Visual Studio 2005 on Windows XP Pro

calendar_today 17 August 2007 10:28

Classic ASP Visual Studio

As an ardent Dreamweaver user for classic ASP, I used to debug my scripts with a plethora of Response.Write and Response.End statements, outputting the values of various values to the browser to check that logic was working as intended. However, I recently discovered how to use the VS 2005 debugger to make debugging classic ASP (almost) a joy.

List the contents of a folder and link to each file

calendar_today 10 August 2007 21:33


Iterating the contents of a folder is straightforward using classes from System.IO, and listing them as links to the actual file just requires a bit of html added to each file name.

Exporting data to a CSV, tab delimited or other text format

calendar_today 02 August 2007 23:41


A question that often comes up in forums is how to export data to a CSV file, or other text format. Here's a method that takes data from a DataReader and writes it to a file.

Displaying One-To-Many Relationships with Nested Repeaters

calendar_today 27 July 2007 14:24


This item could also have been entitled "Displaying Master-Detail Data" or "Displaying Categorised Data", but the principal is the same: you have what are essentially headings or categories, and a group of entries that belong to each heading that you want to display. Typical examples would include the Models of cars by Manufacturer, or Employees by Department. Here's how to do it quite simply using nested Repeaters.

Customising a ListControl's DataTextField value

calendar_today 06 July 2007 12:19

ASP.NET 2.0 ASP.NET Web Forms

The DataTextField property is used with ListControls - RadioButtonList, CheckBoxList etc to specify a field in the DataSource property to display as the items of the list in the list control. Sometimes, however, you don't want just the value from one database field to appear in the list, and there are a couple of ways to achieve this, depending on what you want to do.

A more efficient RSS feed with C#

calendar_today 06 June 2007 23:15

C# ASP.NET 2.0

The contents of an RSS feed only change when items that appear in it are added or amended, so the feed created in the previous article (Create an RSS Feed In ASP.NET 2.0 C#) is rather inefficient, in that the output is generated everytime the feed is requested. Here's an improvement.

Getting the identity of the most recently added record

calendar_today 05 June 2007 22:13

SQL SQL Server Express MS Access ADO.NET

The built-in functions @@Identity and Scope_Identity() are designed to retrieve the most recently added record's autoincrement identity value from Access and Sql Server respectively. Here are some usage examples.

Saving a user's CheckBoxList selection and re-populating the CheckBoxList from saved data

calendar_today 03 June 2007 22:56


The user has gone to the trouble of selecting a list of checkboxes to indicate their choices. Now you need to re-present their selections so that they can edit them. How do you make sure the correct checkboxes are ticked?

Basic file management with System.IO in ASP.NET

calendar_today 29 May 2007 12:37

C# ASP.NET 2.0

Some basic file and folder management tasks that require the use of classes inside System.IO