将字符串转换为布尔值并检查布尔值

时间:2013-09-26 02:47:39

标签: c# .net

在Access数据库中,我有一个名为Display的列,其类型为Yes/No。我正在获取一个表行并将其存储在名为editDrData[]的字符串数组中。现在,我想检查它是真还是假。我试过以下,但它不起作用。检查的正确方法是什么?

if (Convert.ToBoolean(editDrData[15]) == false)

6 个答案:

答案 0 :(得分:1)

您需要进行字符串比较

bool value = editDrData[15] == "Yes";

答案 1 :(得分:1)

存储YES / NO。

的表行的字符串比较
bool value;
if (editDrData[15] == "Yes")
{
    value = true;
}
else
{
    value = false;
}

答案 2 :(得分:0)

根据你的说法,数组实际上保存了布尔值,你不必进行任何转换。简单

if (editDrData[15]) {

}

会做到这一点。如果它确实是字符串,这应该有用;

if (editDrData[15] == "True") {

}

答案 3 :(得分:0)

它应该工作。我会说字符串或逻辑的格式化有问题。你需要插入一个断点来检查它,但是如果它符合examples from microsoft那么字符串应该成功转换...(如果你确实放入一个断点并在运行时找到该值,那么你将获得来自我们的更好答案)

因此,如果editDrData [15]看起来像“true”或“false”(大小写无关紧要),那么上面的代码就可以了。

如果您在editDrData [15]中的字符串实际上是“是”或“否”,那么您不能使用Convert.Boolean(string);你必须把你自己的逻辑放在

 
if(editDrData[15] == "No")
{
    //do stuff here
}

答案 4 :(得分:0)

如果要将字符串传递给Convert.ToBoolean(),则在.net中

,它只能是“True”或“False”

或者我认为它会引发异常。

您是否检查过数据库中存储的实际值是否为字符串?如果它不是真和假,你就不能这样做。

您可以在这种情况下比较字符串

e.g。

if(string.Equals(editDrData [15],“YES ???”,StringComparison.CurrentCultureIgnoreCase)){ }

的字符串。

BTW:在导入系统时将它存储为布尔值会更好吗?

答案 5 :(得分:0)

字符串必须等于(System.Boolean.TrueString)“TRUE”或(System.Boolean.FalseString)“FALSE”,才能使用Convert.ToBoolean(string) 如果您要在整个项目中使用此类功能,您可以覆盖多个方法并制作自己的转换器

http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx