我的if
条件声明是否合适?我正在尝试阅读table column
的值,如果它包含值1
,那么它将获得我正在搜索的图书的值。
代码没有任何错误。它编译。</ p>
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.");
}
答案 0 :(得分:1)
If
语句不起作用,因为您将string
与int
进行比较。所以它总是返回假。
if (cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString().Equals(1))
cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString()
=&gt;这是一个字符串。也许它是&#34; 1&#34; 1
是一个整数(int)=&GT;为了使其正常工作,您应该将1(int)更改为&#34; 1&#34; (字符串)像这样:
if (cfgotcall.tbl.Rows[0]["fCurrentCopies"].ToString().Equals("1"))
答案 1 :(得分:0)
试试这个。它假定数据库字段类型是数字字段。作为旁注,使用SELECT *是不好的。你应该只检索你需要的东西。
您要检查结果== 1还是结果&gt; 0?在这种情况下,图书馆可能有多本图书,我建议您查看&gt; 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#中的所有内容都继承自“object”类型。 .Equals()接受一个对象,而不是字符串或整数等。这就是为什么你没有得到一个compliation错误。