"0"과 "1"을 거짓과 참으로 변환하는 방법
Odbc를 통해 데이터베이스에 연결하는 방법이 있습니다.제가 호출하는 저장 프로시저에는 데이터베이스 측에서 '문자'인 반환 값이 있습니다.지금은 반환 값을 문자열로 가져와서 간단한 if 문으로 사용하고 있습니다.데이터베이스에서 0과 1이라는 두 개의 값만 돌아올 수 있는데 이런 문자열을 비교하는 것은 정말 마음에 들지 않습니다.
OdbcCommand fetchCommand = new OdbcCommand(storedProc, conn);
fetchCommand.CommandType = CommandType.StoredProcedure;
fetchCommand.Parameters.AddWithValue("@column ", myCustomParameter);
fetchCommand.Parameters.Add("@myReturnValue", OdbcType.Char, 1)
.Direction = ParameterDirection.Output;
fetchCommand.ExecuteNonQuery();
string returnValue = fetchCommand.Parameters["@myReturnValue"].Value.ToString();
if (returnValue == "1")
{
return true;
}
이 상황을 처리하는 적절한 방법은 무엇일까요?'변환' 해봤어요.'ToBoolean()'은 당연한 답처럼 보였지만 'String'과 마주쳤는데 유효한 Boolean으로 인식되지 않았습니다.예외가 발생했습니다.제가 여기서 뭔가를 놓치고 있는 것일까요, 아니면 '1'과 '0'이 참이고 거짓인 것처럼 행동하게 만드는 다른 방법이 있을까요?
감사합니다!
어때요?
return (returnValue == "1");
또는 아래 제안된 바와 같이:
return (returnValue != "0");
정확한 것은 당신이 성공적인 결과로 무엇을 찾느냐에 따라 달라집니다.
코드 한 줄로:
bool bVal = Convert.ToBoolean(Convert.ToInt16(returnValue))
변환이 항상 성공하기를 원한다면 문자열을 변환하는 가장 좋은 방법은 다음과 같습니다."1"
~하듯이true
그리고 다른 것들은.false
(Kevin이 하는 것처럼).변환이 실패하기를 원하는 경우 이외의 경우"1"
또는"0"
를 반환하면 다음과 같이 하면 됩니다(도움말 방법으로 입력할 수 있음).
if (returnValue == "1")
{
return true;
}
else if (returnValue == "0")
{
return false;
}
else
{
throw new FormatException("The string is not a recognized as a valid boolean value.");
}
이 양식을 사용할 수 있습니다.
return returnValue.Equals("1") ? true : false;
아니면 더 간단하게(주리스 카스타노프스 덕분):
return returnValue.Equals("1");
반환 유형을 숫자로 설정 - 문자가 필요하지 않으므로 사용하지 마십시오. 숫자 값(0/1)은 변환을 사용하여 변환할 수 있습니다.부울로(숫자)
그렇지 않은 경우: 케빈의 답변을 사용합니다.
또는 부울 값이 반환되지 않는 경우 다음과 같은 작업을 수행할 수 있습니다.
bool boolValue = (returnValue == "1");
내 솔루션(vb.net ):
Private Function ConvertToBoolean(p1 As Object) As Boolean
If p1 Is Nothing Then Return False
If IsDBNull(p1) Then Return False
If p1.ToString = "1" Then Return True
If p1.ToString.ToLower = "true" Then Return True
Return False
End Function
(returnValue != "1" ? false : true);
만약 당신이 변환하기를 원하지 않는다면.그냥 사용;
bool _status = status == "1" ? true : false;
아마도 당신은 당신이 원하는 대로 값을 돌려줄 것입니다.
언급URL : https://stackoverflow.com/questions/2648074/how-to-convert-0-and-1-to-false-and-true
'IT' 카테고리의 다른 글
"COM 클래스 공장에서 구성 요소를 검색하는 중...오류: 80070005 액세스가 거부되었습니다." (HRESULT: 0x80070005(E_ACCESSDENIED)) (0) | 2023.04.28 |
---|---|
(NOLOCK)와 트랜잭션 격리 수준 설정 읽기가 커밋되지 않은 상태 (0) | 2023.04.28 |
deque 컨테이너와 list STL 컨테이너의 차이점은 무엇입니까? (0) | 2023.04.28 |
Excel용 EPLus 라이브러리로 다중 스타일 셀을 만들려면 어떻게 해야 합니까? (0) | 2023.04.28 |
항목이 업데이트될 때 데이터 그리드가 업데이트되지 않는 이유소스가 변경되었습니까? (0) | 2023.04.28 |