Visual Studio 2005 데이터 세트 디자이너에서 "데이터가 있으면 열의 DataType을 변경할 수 없습니다" 오류

StackOverflow https://stackoverflow.com/questions/47217

문제

VisualStudio 2005에 DataSet이 있습니다.데이터 테이블 중 하나에 있는 열의 데이터 유형을 변경해야 합니다. System.Int32 에게 System.Decimal.데이터 유형을 변경하려고 하면 DataSet Designer 다음 오류가 발생합니다.

속성 값이 유효하지 않습니다.데이터가 있으면 열의 데이터 유형을 변경할 수 없습니다.

제가 이해한 바에 따르면 이는 DataSet에 대한 스키마의 데이터 유형을 변경하는 것입니다.이 오류를 발생시키는 데이터가 어떻게 있을 수 있는지 알 수 없습니다.

누구든지 어떤 아이디어가 있습니까?

도움이 되었습니까?

해결책

동일한 오류가 발생하지만 해당 오류가 있는 열에 대해서만 발생합니다. DefaultValue 임의의 값으로 설정(기본값 제외) <DBNull>).그래서 제가 이 문제를 해결한 방법은 다음과 같습니다.

  1. 열 기본값:입력하세요 <DBNull>
  2. 데이터 세트를 저장하고 다시 엽니다.

다른 팁

채워진 데이터 테이블은 스키마의 변경을 수용하지 않으므로 다음과 같이 해결 방법을 적용할 수 있습니다.

  1. 새 데이터 테이블 만들기

  2. DataTable의 복제 방법을 사용하여 동일한 구조로 데이터 가능성을 생성하고 해당 열을 변경하십시오.

  3. 결국 DataTable의 ImporTrow 메소드를 사용하여 데이터를 채우십시오.

HTH

해결 방법을 찾았습니다.데이터 열을 삭제하고 다른 데이터 유형으로 다시 추가하면 작동합니다.

Google을 통해 이를 찾는 경우 테이블에 데이터가 있고 새 열을 추가하는 경우(나처럼)가 약간 다른 경우가 있습니다. 열을 만들고 별도의 문에서 데이터 유형을 설정하면 이와 동일한 예외도 발생합니다.그러나 동일한 명령문에서 수행하면 제대로 작동합니다.

따라서 다음 대신:

var column = myTable.Columns.Add("Column1");
column.DataType = typeof(int); //nope, exception!

이 작업을 수행:

var column = myTable.Columns.Add("Column1", typeof(int));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top