查询中出现“指定的强制转换无效”错误

时间:2013-02-01 08:17:15

标签: asp.net sql

我有一个有趣的问题。我想执行此查询,但发生此错误:

“指定的演员表无效。”

任何人都可以帮助我吗?

这是我的代码:

 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();

6 个答案:

答案 0 :(得分:1)

有一种情况是您可能没有结果,并且返回值可以为空。

你最好试试

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

并检查MaxID是否为空。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

you have to change as follow


int ID=int.Parse(cmd.ExecuteScalar().ToString());

答案 3 :(得分:0)

而不是((int)value)使用Convert.ToInt32(value)。它会起作用。

答案 4 :(得分:0)

sqlcmd.ExecuteScalar()); 

它返回一个不是int的对象。

试试这个

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

答案 5 :(得分:0)

你可以先测试你的值是否为int

int ID;
int.TryParse(sqlcmd.ExecuteScalar(), out ID);