2013-02-01 30 views
1

我有一个有趣的问题。我想执行此查询,但是发生此错误:错误“指定的转换无效”在查询

“指定的转换无效”。

任何身体能帮助我吗?

这里是我的代码:

string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
     SqlConnection sqlconn = new SqlConnection(connStr); 
     SqlCommand sqlcmd = new SqlCommand(); 
     sqlcmd = new SqlCommand("SELECT max(ID) FROM AddNews ", sqlconn); 

     sqlconn.Open(); 
     int ID = ((int)sqlcmd.ExecuteScalar()); 
     sqlconn.Close(); 
+0

检查的返回类型 “sqlcmd.ExecuteScalar());” – Arpit

+1

这完全是一个整数! – Reza

回答

1

有一种情况下,你可能不会有结果和回报可以为空。

你最好尝试

int? MaxID = sqlcmd.ExecuteScalar() as int?; 

,并检查MaxID不为空。

1

结果在SQL级别转换为int。返回的值将是一个int,如果为null,则默认为0。

可以使用Convert.ToInt32(sqlCmd.ExecuteScalar())代替(INT)或(int?)sqlCmd.ExecuteScalar() ?? 0;

0

代替((int)value)使用Convert.ToInt32(value)。它会工作。

0
sqlcmd.ExecuteScalar()); 

它返回的对象不是int。

试试这个

Object s= cmd.ExecuteScalar() 
int x=Integer.Parse(s.ToString)) 
0

您可以测试,如果你的价值是一个int第一

int ID; 
int.TryParse(sqlcmd.ExecuteScalar(), out ID); 
1
you have to change as follow 


int ID=int.Parse(cmd.ExecuteScalar().ToString()); 
相关问题