Friday, November 24, 2006

Results not sorted Correctly when System.Data.DataTable.Select(Filter, Sort) is used

If you are using Windows 2003 SP1 there is an issue in System.Data.dll in .NET Framework 1.1 SP1 which will cause the resulted data to be incorrectly sorted. This is a bug of .Net Framework 1.1.


DataSet1.Table1.Select("Filter1=1 AND Filter2=2 AND Filter3=3", "SortColumn1")

The result of the above statement wont be sorted according to the SortColumn1. But it will be sorted using the Column 1 of the dataset. But if you remove the AND operators used then the result will start to sorting again.
If you really want to sort the things while using AND operators, try making the required sorting column (SortColumn1) the first column in the datatable.

At the moment there is no download and install solution from Microsoft but they said to contact them to find out a solution.

If you like to know more on this you can visit the related Microsoft support center from the following link.
http://support.microsoft.com/Default.aspx?id=900468

Thursday, November 16, 2006

Disabling the Shutdown Event Tracker in Windows 2003

If you try to Shutdown or Restart a computer running Windows 2003 OS you always have to give a reason for the shutdown or restart. This is because Shutdown Even Tracker is enabled. This will be great if it is a server, but this may be annoying if this is a normal PC. If anyone likes to stop this below I am discussing how to accomplish it.

1. In the Run Window (Start -> Run) type GPEdit.MSC and press enter.
2. Expand the Computer Configuration then Administrative Templates and then select System.
3. Double click on Display Shutdown Event Tracker to get the properties of it and select Disabled and click ok.

After these steps you will be able to shutdown the system as normal.

Sometimes your group policy settings may not apply immediately due to various reasons. To force apply the settings open the command window (Type Cmd in the run window) and type GPUpdate /force
This will force the changes made and any errors will be logged to the system event log.
If the shutdown event tracker keeps on appearing then probably an error may have occurred while trying to apply group policy settings. Go to Event Viewer and check for errors.

Note - If you are in a domain then you needs domain rights to disable shutdown event tracker.

Tuesday, November 07, 2006

Registering Crystal Reports

Are you getting an exception
"Internal Exception: Cannot find KeycodeV2.dll or invalid keycode."
when you try to open a report done by Crystal reports?

Errors relating to KeycodeV2.dll can occur in VS.Net because of one of the following issues.
1. KeycodeV2.dll file is not accessible,
2. Does not have access to the registry keys which relate to KeycodeV2.dll,
3. Does not recognize the product Keycode stored in the registry.

Here I will address the last one, because most of the people doesn't know how to correctly register Crystal.

  • As the first step you have to add the licensing merge module which is Crystal_regwiz2003.msm (if you are using VS.Net 2002 the file will be RegWiz.msm) to your setup project.
  • Then get to the properties window of the Merge Module.
  • Expand the Merge Module Properties section in the Properties window and you will see a property called License Key.
  • Enter the License key of your Crystal reports there.

If any one is wondering what the License key is, read on,

To get a license key you have to register Crystal with Business Objects. After registering you will get an email containing a registration number and unique key code (If your copy is already registered you can get to the Product Code by going to menu Help -> About Microsoft Development Environment, in Visual Studio .NET. If it is registered the Product Code is the code besides Crystal Reports for Visual Studio .NET.) Copy the Product Code (Product Code consists of 19 characters and looks something like xxxxx-xxxxxxx-xxxxxxx.) into the License Key property of the above merge module.

Next time you build and install the project the error will vanish.

If you still get the error or if you are interested in reading more into this following URL might be useful to you.

http://support.businessobjects.com/communitycs/technicalpapers/crnet_keycodev2.pdf

Tuesday, October 31, 2006

Tech Ed 2006

Attended Tech Ed hear in Sri Lanka, met many old friends, it was a good time but I think Microsoft should have emphasized more on technical side.

Friday, October 20, 2006

Free Computer Education

We are planning to start a free Computer Training Centre based in my temple (Maithree Dharamayathanaya, Jayawadanagama Battaramulla) to educate the less previledged. On this matter the Rotary Club is helping us. So if you are interested in helping us please contact me.

Wednesday, October 11, 2006

Getting a Crystal Report Parameter value in VB.NET

After setting a parameter value of a crystal report there is no easy way of getting the value. So I found this to get the parameter value.


CType(CType (CType (CType (CType (CType (rpt.Parameter_paraArea, CrystalDecisions.Shared.IParameterField), CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition).CurrentValues, CrystalDecisions.Shared.ParameterValues).Item(0), CrystalDecisions.Shared.ParameterValue), CrystalDecisions.Shared.ParameterDiscreteValue).Value, Object)

rpt is the Crystal Report, paraArea is my parameter name which I needed to get the value of.

Hope this helps.

Monday, October 02, 2006

Playing Media Files in .Net Compact Framework 2.0

I have seen many people asking how to play media files in device applications. Here I am playing media files using Windows Media Player.



This is the ProcessHandler class which imports Coredll Dll and uses it's CreateProcess to create a seperate process with the required application.


This is the main form which has a button to start the Player, then it will ask the user to browse for a media file to play.


The ProcessHandler.CreateProcess function can be used to start any application which is installed in the device by simply replacing the 'WMPlayer' by the required application qualified name (IExplorer).