테이블 사용자의 데이터 형식이 nchar (2) 인 믹스이라는 필드가 있습니다. 이 테이블에서 VS2010의 DataSet을 만들었습니다. DataSet의 필드 믹스는 입니다. System.String이고 최대 길이는 입니다. 이 DataSet에 바인딩 된 텍스트 필드가 있습니다. 이제 예를 들어 내가 값을 "00"으로 변경하고 나는 프로그램이있을 때 다시 데이터베이스에 데이터 집합을 업데이트하는 것을 볼 수있다 저장을 클릭하면 :데이터 형식 nchar (2)의 앞에 오는 0
usersTableAdapter.Update(usersDataSet.Users);
현재 선택한 사용자의 값이 "00"입니다 : "0"
currentUser.mix = "00";
그러나 값은 다음과 같이 저장되어있는 데이터베이스에
. 왜 첫 번째 0이 제거되었고 마지막에 공간이 추가되었는지 이해할 수 없습니다. 예를 들어 텍스트 필드에 "10"을 입력하고 저장하면 데이터베이스에 "10"으로 저장됩니다. 그러나 텍스트 필드에 "01"을 넣으면 맨 앞의 0이 제거되고 "> 1"이됩니다.
어딘가에서 변환 중입니다. 이 값은 숫자 형식이어야합니다 (마지막으로 삽입/업데이트가 문자열을 다시 문자열로 변환하는 것입니다). 이 전환이 일어나는 곳을 찾아야합니다. –
줄 단위로 디버깅하고 마지막 업데이트 코드에 mix 값은 항상 문자열 ("00")로 표시되므로이 변환 colud가 어디에서 발생하는지 알 수 없습니다. 나는 그것이 데이터 셋과 데이터베이스 사이의 어딘가에서 일어난다 고 생각한다. –
'UpdateCommand'와'InsertCommand' ('SqlDataAdapter'라고 가정합니다)'usersTableAdapter'를 조사하십시오. 그들의'CommandText'는 무엇입니까? 매개 변수가 있습니까? 만약 그들이 잘못 되었다면 어떻게'usersTableAdapter'가 생성 되었습니까? –