0

データベースまたはテーブルから値を取得し、Value = Yes の場合に "Result = 10" の部分が返されることを検証するには、このステートメントをどのように記述すればよいですか。このフィールドは「ApprovedStatus」と呼ばれ、値は「いいえ」または「はい」のいずれかになります。

Visual Studioはこれを教えてくれます:「名前「はい」は現在のコンテキストには存在しません」

If (ApprovedStatus.Equals = Yes)
{
result = 10;
}

else
{
result = 1;
}
4

6 に答える 6

5

if (ApprovedStatus == "Yes")それが文字列であるかif (ApprovedStatus)、ブール値であるかを試してください。

于 2011-08-24T20:18:25.797 に答える
1

ApprovedStatus が bool 型の場合は、次のようにします。

if (ApprovedStatus) 

文字列の場合は、これを行わないでください

if(ApprovedStatus == "Yes") 

ApprovedStatus = "yes" の場合、これはfalseになるためです。

代わりに使用

if(StringComparer.OrdinalIgnoreCase.Equals(ApprovedStatus,"Yes"))
    result = 10;
else
   result = 1;

する場合は注意してください

if (ApprovedStatus.ToString().ToUpper().Equals("YES"))

また

if( ApprovedStatus.Equals("whatever",StringComparison.OrdinalIgnoreCase))

ApprovedStatus が null の場合、null 参照例外がスローされます。
...値がデータベースから取得された場合、これは可能性があります。

于 2011-08-24T20:24:22.810 に答える
0

利用可能な情報が限られていることを考えると、最善の推測です...(ApprovedStatusが文字列であると仮定)

if(ApprovedStatus == "Yes") 
{ 
   result = 10; 
} 

else 
{ 
   result = 1; 
} 

また

if(ApprovedStatus.Equals("Yes")) 
{ 
   result = 10; 
} 

else 
{ 
   result = 1; 
} 
于 2011-08-24T20:19:34.530 に答える
0

String.Compareを使用します-より効率的です。

if(String.Compare(ApprovedStatus, "Yes", true)==0){
 result = 10;
} else {
 result = 1;
}
于 2011-08-24T20:20:44.793 に答える
0
if (ApprovedStatus.Equals("Yes"))  <-- Case Sensitive
{

}

また

if (ApprovedStatus.ToString().ToUpper() == "YES")
{

}
于 2011-08-24T20:19:02.157 に答える
0

C# のブール値はtruefalseです。基本的な C# チュートリアルを参照する必要がありますが、チェックはおそらく次のようになります。

if (ApprovedStatus)
{
   result = 10;
}
else
{
   result = 1;
}

次のように短く書くことができます。

result = ApprovedStatus ? 10 : 1;
于 2011-08-24T20:21:24.543 に答える