Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Specified cast is not valid" error in C# windows forms program

Tags:

c#

sql-server

I'm having a "Specified cast is not valid" error. Windows form application in C#. I'm trying to retrieve a value from a table. The value is either a smallint, or a numeric(i tried both fields, both give me the same error), and I try to store it in an int variable.

here's the source:

using (SqlDataReader rdr = cmd.ExecuteReader()) //"select * from table where fieldname = " + value
{

 while (rdr.Read())
 {
  int number = (int)rdr["quantity"]; // error is here
like image 540
jello Avatar asked Feb 04 '10 19:02

jello


1 Answers

rdr["quantity"] is going to be a boxed something. If it is not an int then you can not unbox it directly to an int (which is what you are trying to do) as you have to first unbox it to the appropriate type (say, short). But this is too cumbersome so for clarity you're better off saying

Convert.ToInt32(rdr["quantity"]);
like image 100
jason Avatar answered Oct 14 '22 21:10

jason