无法将类型'decimal'隐式转换为'int'.存在显式转换(您是否缺少演员表?). [英] Cannot implicitly convert type 'decimal' to 'int'. An explicit conversion exists (are you missing a cast?).

查看:721
本文介绍了无法将类型'decimal'隐式转换为'int'.存在显式转换(您是否缺少演员表?).的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



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

无法将类型十进制"隐式转换为"int".存在显式转换(您是否缺少演员表?).

谁能帮我解决这个问题.

这是代码:

Hi,

I am calling a GetSerialNo function But it showing some error like:

Cannot implicitly convert type ''decimal'' to ''int''. An explicit conversion exists (are you missing a cast?).

Can anyone help me to solve this issue.

Here is the code:

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;
	}</pre>

Thanks in advance

推荐答案

nodecimal,而函数返回值是int,因此错误(decimal数据类型比)您可以:
  • 将函数(和slNo变量)数据类型更改为decimal.
no is decimal while your function return value is int, hence the error (decimal datatype is wider than int) you may either:
  • Change your function (and your slNo variable) data type to decimal.
  • no强制转换为int:
  • Explicitely cast no to int:
return (int) no;


(警告:仅在确保值始终位于int范围内时使用此技术.)


(warning: use this technique only if you are sure the values will always fit into int range).


它就是说的意思.您的代码传递了一个期望为int的小数.我想,您需要使用Convert.ToInt()显式转换它.我认为问题是您的退货类型,为什么不只更改它呢?另外,购买一本C#书并阅读,错误消息不会比这本书更清楚.
It means what it says. Your code is passing a decimal where an int is expected. You need to explicitly cast it, with Convert.ToInt(), I guess. I assume the issue is your return type, why not just change it ? Also, buy a C# book and read it, the error messages don''t get any clearer than this one.


dynamic no = cmd.ExecuteScalar();

您需要显式地将no转换为整数,
dynamic no = cmd.ExecuteScalar();

u need to cast explicitly the no in integer,


这篇关于无法将类型'decimal'隐式转换为'int'.存在显式转换(您是否缺少演员表?).的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆