日期:2014-05-18  浏览次数:20417 次

请高手帮忙解决:CS0029: 无法将类型“string”隐式转换为“int”
源错误:

 

行 70: tnSecond.Text = rowS["SAT_Name"].ToString();
行 71: tnSecond.Value = rowS["SAT_ID"].ToString();
行 72: if (rowSecond["SAT_ParentID"].ToString() == rowFirst["SAT_ID"].ToString())
行 73: {
行 74: tnFirst.ChildNodes.Add(tnSecond);
 

源文件: e:\n\3CMarket\telattApply.aspx.cs 行: 72

------解决方案--------------------
Convert.ToInt32(rowSecond["SAT_ParentID"].ToString())
------解决方案--------------------
int.parse
------解决方案--------------------
rowSecond["SAT_ParentID"].ToString() 
无法将类型“string”隐式转换为“int”?怎么会出现这种错误?==rowFirst这个是int吗?
------解决方案--------------------
C# code

Convert.ToString(rowSecond["SAT_ParentID"])==Convert.ToString(rowFirst["SAT_ID"])

------解决方案--------------------
Convert.ToInt32(rowSecond["SAT_ParentID"]) == Convert.ToInt32(rowFirst["SAT_ID"].ToString())
------解决方案--------------------
LZ可跟踪调试一下看其中的值,在运行时是什么
------解决方案--------------------
曾遇到过。
后来干脆先转double然后转INT。
------解决方案--------------------
rowSecond["SAT_ParentID"].ToString()值是什么?
rowFirst["SAT_ID"].ToString()) 值又是什么?

然后你就知道该怎么做了
------解决方案--------------------
rowSecond这个是什么?有可能他的索引只能是数字rowSecond[1]
------解决方案--------------------
这样就可以啦,例如:
string str="1234";
int i=Int16.Parse(str);

这样就可以啦!如果你的string并不是数字的话,那么中间的异常之类的处理就另当别论啦!

------解决方案--------------------
要看string的值是否益出了int的范围