如何将数据库条目强制转换为String

时间:2014-03-16 13:15:12

标签: c# database

 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()但仍有错误。

3 个答案:

答案 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()可能会更好。