private object GetTypedValue(string type, string value)
{
// Return the correct type.
switch (type)
{
case "bigint":
return Int64.Parse(value);
case "bit":
return bool.Parse(value);
case "char":
case "nchar":
case "ntext":
case "nvarchar":
case "text":
case "varchar":
return value;
case "datetime":
case "smalldatetime":
return DateTime.Parse(value);
case "decimal":
return decimal.Parse(value);
case "float":
case "real":
return float.Parse(value);
case "int":
return int.Parse(value);
case "money":
case "smallmoney":
return SqlMoney.Parse(value);
case "smallint":
return Int16.Parse(value);
case "xsd:base64Binary":
return Convert.FromBase64String(value);
default:
throw new NotSupportedException("...");
}
}