0

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

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

6 回答 6

1

您需要进行字符串比较

bool value = editDrData[15] == "Yes";
于 2013-09-26T02:50:32.620 回答
1

存储 YES/NO 的表行的字符串比较。

bool value;
if (editDrData[15] == "Yes")
{
    value = true;
}
else
{
    value = false;
}
于 2013-09-26T03:09:20.713 回答
0

根据您的说法,如果数组实际上包含布尔值,则您不必进行任何转换。简单的

if (editDrData[15]) {

}

会成功的。如果它确实是字符串,这应该有效;

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

}
于 2013-09-26T02:59:25.290 回答
0

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

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

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

 
if(editDrData[15] == "No")
{
    //do stuff here
}
于 2013-09-26T03:08:31.147 回答
0

在 .net 中,如果你想将字符串传递给 Convert.ToBoolean(),它只能是“True”或“False”

或者我认为它会抛出异常。

您是否检查过以字符串形式存储在数据库中的实际值?如果它不是 True 和 False,你不能这样做。

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

例如

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

细绳。

顺便说一句:在导入系统时将其存储为布尔值会更好吗?

于 2013-09-26T03:08:51.967 回答
0

字符串必须等于 (System.Boolean.TrueString) "TRUE" 或 (System.Boolean.FalseString) "FALSE",才能使用 Convert.ToBoolean(string) 如果你要在整个项目中使用这样的函数,你可以覆盖几个方法并制作自己的转换器

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

于 2013-09-26T06:17:30.337 回答