Friday, September 11, 2009

Updating XML fields using LINQ to SQL

There is an hard to avoid issue with LINQ to SQL. That is you cannot update data on XML data fields using LINQ to SQL. This is a work around so you can update data in XML data fields using LINQ to SQL.

  • Open your DML file on Microsoft Visual Studio.

  • Drag and drop the table(s) that have the XML data field(s). (This is a new instance let the original table to be there. For example if original table name is "Employee" this might be "Employee1".)

  • Click on the data field name that has XML type data.

  • On properties box change the Type under Code Generation to String.

  • Now when ever you need to update the XML data, use the new table instance.


Please note when compiling you may get a warning saying two references for same table might to lead to a conflict. You can safely ignore it and do wise coding. :-)


Recommended Books

Tuesday, September 1, 2009

Fix your USB Flash Drives

Most of time due to viruses and disk errors USB flash drives or USB pen drives become unusable. If you try to open them, format them or scan them for viruses on Windows; system won't let you do so.
There is a very easier fix on the other side of the river. i.e. using Linux.

WARNING: This procedure will format your flash drive. I'm not responsible for any damages or loss that may cause you. Use this guide at your own risk.


All you need is Linux installed machine or bootable Live Linux CD.
Goto console mode. (Go to the terminal mode)
Type following command to find out your flash drive node,

sudo dmesg | tail -20

Then you will get a list like

....
usb-storage: device scan complete
sd 3:0:0:0: [sdb] 12345678 512-byte hardware sectors: (320 GB/298 GiB)
sd 3:0:0:0: [sdb] Write Protect is off
sd 3:0:0:0: [sdb] Mode Sense: 03 00 00 00
sd 3:0:0:0: [sdb] Assuming drive cache: write through
sd 3:0:0:0: [sdb] Assuming drive cache: write through
....

Then sdb is your flash drive.

Use following commands to fix your flash drive.

sudo fdisk /dev/sdc

You must change /dev/sdc appropriately.

Then you will get following message and prompt.

The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):


You may type p to list current partition table.

Then enter d and delete available partitions.
If you have only a single partition entering d will delete it.
Other wise you may have to enter the partition id.

After deleting all the partitions, enter n to create new partition.

Command (m for help): n
Command action
e extended
p primary partition (1-4)

Now enter p then 1.
Then enter twice.

p
Partition number (1-4): 1
First cylinder (1-7644, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-7644, default 7644):
Using default value 7644

Command (m for help):

Now enter w to write table to disk and exit.
Now you will be able to format the USB flash drive and reuse it again.