2011-05-05 5 views
2

SQL Server 데이터베이스의 레코드를 업데이트하기 위해 SQLDataSource와 함께 detailsview를 사용하고있는 상황이 있습니다.asp.net NULL 값을 ""(빈 문자열)로 변환하는 방법

내 문제는 완료되지 않은 텍스트 필드가 데이터베이스에서 NULL로 변환된다는 것입니다. 이로 인해 NULL DB 값을 처리 할 수없는 타사 웹 서비스를 사용하는 웹 사이트로 문제가 발생합니다.

업데이트 또는 삽입이 발생할 때 텍스트 필드가 비어있는 경우 데이터가 NULL 값 대신 ""(빈 문자열)로 변환되는 방식이 있습니까?

답변

5

같은 것을 할 수있는, 삽입하거나 레코드를 업데이트 할 때, 삽입/업데이트 매개 변수의 ConvertEmptyStringToNull 특성이있다. 이 값을 false로 설정하고 해당 컨트롤에 값이 제공되지 않으면 문자열을 비어있게 설정하십시오. 아래 예제를보십시오.

<asp:SqlDataSource ID="SqlDataSource1" runat="server"> 
     <InsertParameters> 
      <asp:ControlParameter ConvertEmptyStringToNull="false" /> 
     </InsertParameters> 
     <UpdateParameters> 
      <asp:ControlParameter ConvertEmptyStringToNull="false" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 
+0

답변 해 주셔서 감사합니다. SQLDataSource에 이미 "ConvertEmptyStringToNull"을 추가했지만 필드가 비어 있으면 db에 NULL 값을 여전히 isns합니다. – Jason

+0

거짓으로 설정 했습니까? 여전히 Null에 들어가면 이상합니다. –

+0

감사합니다. Muhammad, 당신의 솔루션은 효과가있었습니다. sqldatasource가 아닌 details 뷰에 convertemptystringtonull 매개 변수를 추가했습니다. – Jason

0

데이터베이스 테이블 열에 default value ""을 설정할 수 있습니다. 당신이 SQLDataSource을 사용하고 있기 때문에 아니면 SQL SELECT 문에 당신이

SELECT IsNull(ColName,"") 
FROM SomeTable 

+0

나는 그렇게 생각하지 않습니다. 내가 반환 한 모든 열에 대해 IsNull SQL을 작성해야합니다. SELECT [subscriberID], [title], [firstname], [company], [state], [town], [address], [passwordHint], [email], [password] , [우편 번호], [국가], [phoneBH], [PhoneAH], [모바일], [dateOfBirth], [메모], [확인], [guid], [nickname], [avatar] FROM [ [subscriberID] = @ 구독자 ID). – Jason

+0

반환 된 모든 열에 대해 IsNull SQL을 사용해야합니다. 해당 열은 NULL 일 수 있으며 업데이트 할 때 빈 문자열로 변환해야합니다. 모든 코드에 대한 완전한 액세스 권한이 없기 때문에이 작업을 수행해야합니다. 나는 단지 이미 작동하는 응용 프로그램에 추가하고 있습니다. – Jason

관련 문제