2013-03-13 5 views
0

webapp에 체크 박스가 있고 저장 버튼이 있습니다. 저장 버튼을 클릭하면 checked 확인란의 상태가 데이터베이스에 저장됩니다.체크 박스의 값은 0과 -1입니까?

확인란을 선택하지 않으면 데이터베이스에 0이 있습니다. 그러나, 그들이 checked 일 때, 나는 -1를 데이타베이스에서 얻는다. 나는 1의 것을 기대하고 있었다. 선택 상태에 대해서는 -1의 정상입니까?

샘플 코드 :

Function ProcessAction(ByVal checkbox1 As Integer, ByVal checkbox2 As Integer) As Integer 

    connection = New SqlConnection(ConfigurationSettings.AppSettings("connString")) 

    command = New SqlCommand("stored_procedure_name_here", connection) 
    command.CommandType = CommandType.StoredProcedure 

    command.Parameters.Add(New SqlParameter("@id", SqlDbType.Int, 4)).Value = 100 
    command.Parameters.Add(New SqlParameter("@checkbox1", SqlDbType.Int, 4)).Value = checkbox1 
    command.Parameters.Add(New SqlParameter("@checkbox2", SqlDbType.Int, 4)).Value = checkbox2 

    command.Connection.Open() 
    command.ExecuteNonQuery() 
    command.Connection.Close() 

    Return 1 
End Function 

호출 :

Sub ButtonClick(ByVal Source As Object, ByVal E As EventArgs) 
    ProcessAction(checkbox1.Checked, checkbox2.Checked) 
End Sub 

답변

3

이 많은 사이의 코드에 따라 달라집니다 만, 부울 진정한 가치는 통상적으로 정수 값으로 표현된다 -1. 이 모든 것은 값이 유지되기 전에 값을 처리하는 방법에 따라 다릅니다. 어떤 코드는 도움이 더 필요할 때 유용 할 것입니다.


EDIT : 추가 된 코드는 부울에서 정수로의 암시 적 캐스트를 사용하여이 -1 값을 얻는 것을 보여줍니다. VB에서는 버전에 따라 Iif(checkbox1.Checked, 1, 0) 또는 If(checkbox1.Checked, 1, 0)을 사용할 수 있습니다. 또는 값을 부울로 유지하고 SQL Server에있는 bit 데이터 형식과 같은 적절한 기본 DBMS 데이터 형식에 저장합니다 (예 : SQL Server에 저장).

+0

추가 아래에 몇 가지 예제 코드와 같은 코드를 사용할 필요가 있다고 생각합니다. – oshirowanen

+0

이 메서드를 호출 할 때 이미 int 값 -1로 변환되었습니다. 호출 코드를 표시하십시오 ... –

+0

호출 예제 코드가 추가되었습니다. – oshirowanen

0

나는 유

Sql = CheckBoolean(Checkbox.checked) 
Function CheckBoolean(Value As Boolean) 
    If Value Then Return "-1" 
    Return "0" 
End Function