无法将类型'string'隐式转换为'int'430

时间:2015-04-12 20:41:36

标签: c#

错误1无法隐式转换类型' string'到' int'
错误2运营商' =='不能应用于' int'类型的操作数和'字符串'

这仅适用于iD,密码是字符串

我如何制作这个,iD是一个i​​nt.Parse?

foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    iD = dr["@ID"].ToString();
                    password = dr["@PASSWORD"].ToString();
                }

                if (iD == id && password == pw)
                {
                    return true;
                }
                else
                {
                    LogNotification = "ID/Password is incorrect";
                    return false;
                }
            }

4 个答案:

答案 0 :(得分:2)

int.Parse将抛出一个Exception,所以我建议你使用[int.TryParse] 例如:

        string numberAsString = "10";
        int onlyNumber;
        if (!int.TryParse(numberAsString, out onlyNumber))
        {
            // failed to convert string to int, do something
        }
在你的例子中

        int iD;
        if (!int.TryParse(dr["@ID"].ToString(), out iD))
        {
            // failed to convert string to int, do something
        }

答案 1 :(得分:0)

使用此

更改第3行
 iD = Convert.ToInt32(dr["@ID"]);

答案 2 :(得分:0)

简单地替换:

iD = int.Parse(dr["@ID"].ToString());

给定iDvar类型,以便编译器可以自动更改类型。如果没有,您需要在if级别执行此操作:

if (int.Parse(iD) == id && password == pw)

答案 3 :(得分:0)

如果@ID是数据行中的整数,我建议根本不进行任何转换,而不是字符串而不是返回整数。只需使用the Field extension method 将其检索为整数。

iD = dr.Field<int>("@ID");