2013-09-26 71 views
0

在Access数据库中,我有一个名为Display的列,其类型为Yes/No。我正在读取表格行并将其存储在名为editDrData[]的字符串数组中。现在,我想检查它是真是假。我尝试了以下,但它不起作用。什么是正确的方式来做这个检查?将字符串转换为布尔值并检查布尔值

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

什么是数组中元素的实际strinf价值?它是真实的“是”和“否”? –

+0

虽然存储我存储布尔值真和假, – Durga

+0

如果他们是布尔值,为什么你把它们存储在一个字符串数组? –

回答

0

如果根据你,数组实际持有布尔值,你不必做任何转换。简单

if (editDrData[15]) { 

} 

将做的伎俩。如果它确实是字符串,这应该工作;

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

} 
+0

但我怎么做检查值是真的还是假的? – Durga

+0

@ Yuriy Galanter它显示我这个错误,当我尝试它'错误操作符'=='不能应用于类型'字符串'和'bool''的操作数 – Durga

+0

这工作'if((editDrData [15] ==“True “)请更新你的答案 – Durga

1

你需要做一个字符串比较

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

存储时,我存储布尔值true和false,而不是字符串 – Durga

+0

@Durga在上面的答案中,'value'将是'true'或'false'。 – Khan

+0

editDrData [15]的字符串值是多少? “真正”? “是”? – MikeLim

0

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

所以,如果editDrData [15]看起来像“真”或“假”(案例无关紧要),那么你上面的代码将工作。

如果editDrData [15]中的字符串实际上是“Yes”或“No”,那么您不能使用Convert.Boolean(string);你将不得不把自己的逻辑,像


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

,如果你想传递的字符串Convert.ToBoolean(),它只能是“真”或“假”

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

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

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

例如,

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

字符串。

顺便说一句:当导入到系统中时,将它作为布尔值存储会更好吗?

1

您的表格行存储的字符串比较是/否。

bool value; 
if (editDrData[15] == "Yes") 
{ 
    value = true; 
} 
else 
{ 
    value = false; 
} 
0

字符串必须等于(System.Boolean.TrueString) “TRUE” 或(System.Boolean.FalseString) “FALSE”,使用Convert.ToBoolean(串) 如果你要使用这样的功能所有以上项目可以覆盖一些方法,使自己的转换器

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