2011-09-30 2 views
-2

Datatypenumeric(10, 1) 인 테이블 필드가 있습니다. 이 필드는 AmountPaid을 저장하며 사용자는 금액 값을 쉼표로 사이에 넣으려는 경향이 있습니다 (예 : 78,234,673). 익숙하지 않기 때문에 그렇지 않으면 많은 오류가 발생합니다.사용자가 SQL Server 2005 숫자 필드에 저장되는 값으로 쉼표를 입력하도록 허용하려면 어떻게합니까?

값에 쉼표를 사용할 수 있지만 저장시 제거 할 수있는 방법이 있습니까? 아니면 SQL-SERVER에 저장하고 DATATYPE을 변경하지 않고 저장할 수있는 방법이 있습니까?

+0

사용자가 전화 번호를 어떻게 입력합니까? SQL Server는 쉼표와 점은 신경 쓰지 않지만 사용자 인터페이스 응용 프로그램은 상관하지 않습니다. 어쨌든, 해결책은 사용자가 자신의 컴퓨터에서 원하는 수의 설정 (숫자 포맷 포함)을 선택하는 것입니다. 그가 사용하는 응용 프로그램이 이것을 존중하지 않으면 수정해야합니다. –

답변

0

Double.Parse (TextBox1.Text는) 내가 찾고 있었던 것입니다.

2

UI에서 값을 파싱하는 방법이나 구문 분석 할 유형이 명확하지 않지만 NumberStyles.AllowThousands은 내가 원하는 것임을 알 수 있습니다. 나는 이라고 가정하고 숫자로 사용자 입력을 구문 분석하고이를 SQL 서버에 매개 변수 값으로 전달합니다. SQL로만 입력하는 대신 SQL을 그대로 사용하는 것입니다. 그렇지 않으면 첫 번째 변경 사항입니다.

0

나는 네가 뭘했는지 모르겠지만, 기본적으로 SQL에 int 배열을 전달하고 싶다면 문자열을 전달하는 것에 대해 생각해 보았다. (쉼표로 구분 된 값으로 보임) 그리고 나서 그들을 분리한다. SQL 내부에서 필요한 값으로 변환합니다. 그런 다음 원하는 테이블에 놓습니다.

필자는 며칠 전에 비슷한 일을해야했지만 분할 기능이없는 오라클 데이터베이스에서는 하나를 생성해야했습니다. 코드는 다음과 같습니다. SQL Server로 변환하는 데 문제가 없습니다.

CREATE OR REPLACE PACKAGE SPLIT_FNC IS 
    -- Create a Type to be used as a temp table 
    TYPE strArray IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER; 
    FUNCTION SPLIT_STR(word IN VARCHAR2) RETURN strArray; 
END; 

CREATE OR REPLACE PACKAGE BODY SPLIT_FNC IS 
    FUNCTION SPLIT_STR(word IN VARCHAR2) RETURN strArray IS items strArray; 
    temp NUMBER; 
    delim CHAR := ','; 
    start_index NUMBER := 1; 
    end_index NUMBER := -1; 
    BEGIN 
    temp := 1; 
    -- If INSTR can not find a match it will return 0 
    WHILE end_index != 0 LOOP 
     -- Find location of next comma 
     end_index := INSTR(word, delim, start_index, 1); 
     CASE 
     WHEN 
      end_index = 0 
     THEN 
      -- Catch the last value 
      items(temp) := SUBSTR(word, start_index); 
     ELSE 
      -- Get substring of start to next comma 
      items(temp) := SUBSTR(word, start_index, end_index - start_index); 
     END CASE; 
     start_index := end_index + 1; 
     temp := temp + 1; 
    END LOOP; 
    RETURN items; 
    END SPLIT_STR; 
END SPLIT_FNC; 

는 희망이 도움이됩니다 - Ankou

관련 문제