if((string)row["ProductID"].ToString() == txtBarcode.Text)
如果文本框的值与我的数据表相同但我有错误,我想搜索一行..它说Possible unintended reference comparison; to get a value comparison, cast the left hand side to string
。我只是使用.ToString()
和Convert.ToString()
但仍有错误。
答案 0 :(得分:2)
您的.ToString()
正在将行值转换为字符串,因此您无需使用(string)
IE中。 if(row["ProductID"].ToString() == txtBarcode.Text)
就个人而言,我很清楚使用==运算符除了整数,字符以及此实例是否是该实例。
比较字符串的更好方法是使用string.Equals(string)
string.contains(string)
或string.indexOf(string)
答案 1 :(得分:1)
注意:如果您要与TextBox
值进行比较,那么在比较之前trim
值最好是使用Trim()
方法删除空格。< / p>
解决方案1:如果要查找excat匹配,则需要使用Equals()
方法。
if(row["ProductID"].ToString().Equals(txtBarcode.Text.Trim())
{
/* do something*/
}
解决方案2:如果您想查找字符串的一部分,那么您可以使用String.Contains()
方法,如下所示:
if(row["ProductID"].ToString().Contains(txtBarcode.Text.Trim())
{
/* do something*/
}
答案 2 :(得分:0)
您需要执行以上操作之一。可以使用强制转换(string)row["ProductId"]
或Convert.ToString(row["ProductId"])
将值转换为字符串。但使用(string)row["ProductId"]
进行投射可能会抛出InvalidCastException
。所以ToString()
可能会更好。