Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将数据库项强制转换为字符串_C#_Database - Fatal编程技术网

C# 如何将数据库项强制转换为字符串

C# 如何将数据库项强制转换为字符串,c#,database,C#,Database,如果txtbox的值与我的datatable相同,但我有一个错误,我想搜索一行。。它说,可能的非预期参考比较;要进行值比较,请将左侧强制转换为字符串。我只使用了.ToString()和转换.ToString(),但仍然存在该错误。您的.ToString()正在将行值转换为字符串,因此您不必在左侧使用(字符串) 例如,if(行[“ProductID”].ToString()==txtBarcode.Text) 就我个人而言,除了int、chars以及这个实例是否就是那个实例之外,我不会使用==运算

如果txtbox的值与我的datatable相同,但我有一个错误,我想搜索一行。。它说,
可能的非预期参考比较;要进行值比较,请将左侧强制转换为字符串
。我只使用了
.ToString()
转换.ToString()
,但仍然存在该错误。

您的
.ToString()
正在将行值转换为字符串,因此您不必在左侧使用
(字符串)

例如,
if(行[“ProductID”].ToString()==txtBarcode.Text)

就我个人而言,除了int、chars以及这个实例是否就是那个实例之外,我不会使用==运算符


比较字符串的更好方法是使用
string.Equals(string)
string.contains(string)
string.indexOf(string)
您需要执行上述操作之一。执行强制转换
(string)行[“ProductId”]
转换.ToString(行[“ProductId”])
以将值转换为字符串。但是使用
(string)行[“ProductId”]
进行强制转换可能会抛出
InvalidCastException
。因此,可能
ToString()
会更好。

注意:如果要与
TextBox
值进行比较,则最好在比较之前
trim
值,使用
trim()
方法删除空白

解决方案1:如果要查找excat匹配项,则需要使用
Equals()
方法

 if((string)row["ProductID"].ToString() == txtBarcode.Text)
解决方案2:如果要查找字符串的部分,可以使用
string.Contains()
方法,如下所示:

if(row["ProductID"].ToString().Equals(txtBarcode.Text.Trim())
{

/* do something*/

}

删除显式强制转换
(string)
如果您在他的情况下使用
ToString
,string.Equals将是一个更好的选择。
string.Contains(string)
string.IndexOf(string)
显然是错误的建议,因为它们在
“Foo Bar.IndexOf”(“Foo”)的情况下返回积极结果。最好像@Scott建议的那样使用
String.Equals
。@Oybek,我确实提到了比较字符串的常规选项。已经添加了字符串。但是等于。
if(row["ProductID"].ToString().Contains(txtBarcode.Text.Trim())
{

/* do something*/

}