[英]If statement on DataTable field doesn't return true
我的if
条件语句正确吗? 我正在尝试读取table column
的值,如果它的值包含1
那么它将获得我正在搜索的书的值。
该代码没有任何错误。 它编译。
string sql = "SELECT * FROM tbladdbook WHERE fBarcodeNo LIKE '" + txtBARCODE.Text.Trim() + "%'";
cfgotcall.engageQuery(sql);
if (cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString().Equals(1))
{
txtTITLE.Text = cfgotcall.tbl.Rows[0][1].ToString();
}
else
{
MessageBox.Show("Book already borrowed.");
}
If
语句不起作用,因为您将string
与int
进行比较。 因此它总是返回false。
if (cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString().Equals(1))
cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString()
=>这是一个字符串。 也许是“ 1” 1
是整数(int) =>为使其正常工作,应将1(int)更改为“ 1”(字符串),如下所示:
if (cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString().Equals("1"))
尝试这个。 假定数据库字段类型是数字字段。 附带说明,使用SELECT *是不好的。 您应该只检索所需的内容。
您要检查结果== 1还是结果> 0? 在这种情况下,图书馆可能有多本书,建议您检查> 0
string sql = "SELECT * FROM tbladdbook WHERE fBarcodeNo LIKE '" + txtBARCODE.Text.Trim() + "%'";
cfgotcall.engageQuery(sql);
var result = cfgotcall.tbl.Rows[0]["fCurrentCopies"];
if (DBNull.Value.Equals(result) || result == null) { result = 0; }
if ((int)result == 1)
{
txtTITLE.Text = cfgotcall.tbl.Rows[0][1].ToString();
}
else
{
MessageBox.Show("Book already borrowed.");
}
附带说明一下,C#中的所有内容都继承自“对象”类型。 .Equals()接受一个对象,而不是一个字符串或一个整数等。这就是为什么您不会得到一个编译错误的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.