>>In this example, pRecordId is an instance of a SqlParameter class.
>>
>>This works
>>
>>int RetVal = Convert.ToInt32(pRecordId.Value);
>>
>>
>>This throws "Specified cast is not valid"
>>
>>int RetVal = (int)pRecordId.Value;
>>
>>
>>
>>Why?
>
>
>Because the dbType of pRecordId is declared as char ?
>
>This fails
>
> var pRecordId = new SqlParameter("TheName", System.Data.SqlDbType.Char, 20);
> pRecordId.Value = "20";
>
> int RetVal = (int)pRecordId.Value;
>
>
>this works
>
> var pRecordId = new SqlParameter("hello", System.Data.SqlDbType.Int, 4);
> pRecordId.Value = 20;
>
> int RetVal = (int)pRecordId.Value;
>
> Console.WriteLine("{0}", RetVal);
> Console.ReadLine();
>
I think here we need to use TryParse method or Convert class, if I recall correctly.
If it's not broken, fix it until it is.
My Blog