2011-03-11 6 views
2

엔티티 프레임 워크를 사용하여 열 varchar (50)가있는 데이터베이스에 세부 정보를 삽입하고 있습니다. 내가 50 비트 길이가 넘는 값을 삽입하려고하면 오류 문자열 또는 이진 데이터가 잘릴 수 있습니다. 안전 측면에서 방금 varchar (100)로 변경했습니다. 누군가가 나를 알릴 수 이제 '문자열 또는 이진 데이터가 잘립니다.'

이이 DB에 값을 변경하는 유일한 솔루션입니다 또는 우리가 어떤 대안이 있습니까 ....... 나는 기사 http://sqlblogcasts.com/blogs/danny/archive/2008/01/12/scuffling-with-string-or-binary-data-would-be-truncated.aspx

을 읽을하지만 난 방법을 사용할 수 있습니다 그런 것들을 C#에서. 내가 ......... 당신에게서

감사

+0

삽입 쿼리/sproc을 표시하면 도움이됩니다. –

답변

2

처리 할 입력 필드의 유형에 따라 varchar(max)을 사용할 수 있습니다.

그러나 이전에 지적했듯이 비즈니스 요구 사항이 무엇인지 알 수 있습니다.

2

음을 어떤 제안을 주셔서 감사합니다, 우선, 분명 당신은 VARCHAR (50)에 긴 문자열 50 이상 삽입 할 수 없습니다.

그래서 당신은 당신의 필요 조건에 따라 두 가지 옵션이 있습니다

  • 변화 (당신이 발견 한 것처럼) 데이터베이스 및 '업스트림'모든 코드가 더 이상 데이터를 해결 할 수 있는지 확인
  • 몇 가지 유효성 검사를 추가하거나 사용자 입력을 제한하여 더 이상 긴 문자열을 얻을 수 없도록하십시오.

글쎄, 3 분의 1은 사용자에게 말하지 않고 문자열을 잘라내지만 그렇게하지 않을 것입니다.

그래서 비즈니스 요구 사항에 따라 달라집니다. 하지만 당신이 제안한 기사에서와 같이 어떤 '트릭'도하지 않겠습니다.

0

db의 필드 길이를 적당한 길이로 설정해야하며 사용자가 그 길이에 맞지 않는 값을 입력하지 못하게해야합니다.

관련 문제