错误1无法隐式转换类型' string'到' int'
错误2运营商' =='不能应用于' int'类型的操作数和'字符串'
这仅适用于iD,密码是字符串
我如何制作这个,iD是一个int.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;
}
}
答案 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());
给定iD
是var
类型,以便编译器可以自动更改类型。如果没有,您需要在if
级别执行此操作:
if (int.Parse(iD) == id && password == pw)
答案 3 :(得分:0)
如果@ID
是数据行中的整数,我建议根本不进行任何转换,而不是字符串而不是返回整数。只需使用the Field extension method 将其检索为整数。
iD = dr.Field<int>("@ID");