无法将类型'decimal'隐式转换为'int'。存在显式转换(您是否错过了演员?)

时间:2011-07-12 09:30:35

标签: c#

我正在调用GetSerialNo函数,但它显示了一些错误,如:

  

无法将类型'decimal'隐式转换为'int'。存在显式转换(您是否错过了演员?)。

有人可以帮我解决这个问题吗?

以下是代码:

int slNo= GetSerailNo(keydata);

private int GetSerailNo(String keydata)
{

    SqlConnection con = new SqlConnection(@"server=Servername;database=DBNAME;uid=Username;pwd=Pwd;max pool size=250;Connect Timeout=0");
    con.Open();
    cmd = new SqlCommand("select isnull(max(slno)+1,1) from d001docs where source_keydata='" + keydata + "'", con);
    dynamic no = cmd.ExecuteScalar();
    cmd.Dispose();
    con.Close();
    return no;
}

提前致谢

2 个答案:

答案 0 :(得分:7)

cmd.ExecuteScalar()

返回一个小数,在返回之前需要将其转换为int,例如:

return Convert.ToInt32(no);

答案 1 :(得分:4)

使用:

int no = (int)cmd.ExecuteScalar();