2010-07-12 3 views
0

입니다 NULL 개체 있다면이 DB에 문자열을 통과 할 때마다 해당 문자열이 비어있는 경우, 다음, 나는 다음을 수행하여 NULL로 해당 개체를 설정 이 코드의 길이를 줄이고 일관성있게 만드는 함수를 작성하려고 생각했습니다..NET 할당 된 문자열의 길이가 현재 0

그러나, 나는 .NET 3.5에서이 작업을 수행하는 방법이 이미 있는지 궁금합니다.

답변

1

당신은 확장 메서드를 작성할 수 있습니다. 사실, 내가 아는 대부분의 개발자는 NULL과 빈 문자열을 구별하는 것을 선호합니다. 그것들은 .NET에서 다르므로 DB에서 다른 경우에도 훨씬 쉽고 (일관성이 있습니다).

올린 날짜 : OOps가 VB.NET 질문입니다. 죄송합니다, 내 VB.NET 조금 녹슨,하지만 당신은 VB.NET 위의 간단한 기능을 번역 할 수있을 것이라고 확신합니다.

+0

Thanks @ Vilx-. 결국 나는 갔다 : 문자열 반환하여 IIf으로 공공 공유 기능 NullIfEmpty (문자열로 ByVal의 값) 최종 기능 – Curt

+1

@Curt (String.IsNullOrEmpty (값) 값, DBNull.Value, 거짓 =) - 그들이 말하는대로 - 같은 차이! :) –

0

데이터베이스에 더 많은 null을 넣지 않으면 데이터베이스 성능이 향상되고 쿼리가 더 쉬워집니다. "", 0, -1, 음의 무한대 또는 상황에 맞는 다른 값을 고수하고 응용 프로그램 코드를 변경하십시오. 데이터베이스에서 불필요한 널 (null)을 피하십시오. 단지

DescriptionTxt.Text.AsNull() 

를 사용하는 코드에서 다음

public static object AsNull(this string me) 
{ 
    if (string.IsNullOrEmpty(me)) 
     return DBNull.Value; 
    return me; 
} 

하지만 그렇지 않은 경우 기본적으로 그것을 않습니다 .NET에서 아무것도 없다 :

+0

설명과 같은 뉴스 기사의 선택적 필드가 있습니다. 확실하게 빈 문자열 대신 빈 값을 NULL로 저장하는 것이 가장 좋습니다. 공간이 적고 관리가 더 쉽습니다 (ISNULL과 같은 시스템 기능을 사용할 수 있음). – Curt

1

당신은 이미 가장 간단한 코드를 가지고 있습니다. 이 작업을 단순화하는 3.5 가지 도구가 없습니다. 상세 검색은 코드와 @ Vilx- 코드 간의 병합 일 수 있습니다.

IIf(String.IsNullOrEmpty(DescriptionTxt.Text), DBNull.Value, DescriptionTxt.Text) 
관련 문제