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

6 回答 6

1

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

你最好试试

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

并检查 MaxID 是否不为空。

于 2013-02-01T08:22:23.937 回答
1

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

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

于 2013-02-01T08:23:47.940 回答
1
you have to change as follow


int ID=int.Parse(cmd.ExecuteScalar().ToString());
于 2013-02-01T08:32:19.687 回答
0

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

于 2013-02-01T08:24:08.720 回答
0
sqlcmd.ExecuteScalar()); 

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

试试这个

Object s= cmd.ExecuteScalar()
int x=Integer.Parse(s.ToString))
于 2013-02-01T08:27:40.210 回答
0

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

int ID;
int.TryParse(sqlcmd.ExecuteScalar(), out ID);
于 2013-02-01T08:30:16.837 回答