2014-04-11 5 views
0

NetSdoGeometry.sdogeometry 유형의 필드가있는 DataRow가있는 xsd가 있습니다. 데이터를 가져 오려고 할 때 테이블에서 모든 필드를 제외하고 하나씩 검색 할 수 있습니다. 기하학 필드와 데이터에 오류가 발생합니다. 지오메트리 데이터를 가지고있다하지만, 어떻게 든 그것이 null의 생각 :GEOMETRY는 'System.Data.StrongTypingException'유형의 예외를 던졌습니다.

GEOMETRY = 'r.GEOMETRY는'형식의 예외가 발생했습니다 'System.Data.StrongTypingException'여기

데이터를 얻을 수있는 호출입니다 :

AllowDBNull = 진정한
: 여기

MyDS.GisRow r = mDS.Gis.FindByGis_ID((decimal)aRow.Cells["Gis_ID"].Value); 
는 지오메트리를 DataColumn의 속성은 자동 증가= 거짓
AutoIncrementSeed = 0
AutoIncrementStep = 1
캡션 = GEOMETRY
데이터 타입 = NetSdoGeometry.sdogeometry
DateTimeMode = UnspecifiedLocal
의 DefaultValue =
식 =
최대 길이 = -1
에 nullValue = (예외 예외 발생)
ReadOnly = False
소스 = GEOMETRY
그에 대한 테이블의 GEOMETRY 필드의 데이터가

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] 
      public NetSdoGeometry.sdogeometry GEOMETRY { 
       get { 
        try { 
         return ((global::NetSdoGeometry.sdogeometry)(this[this.tableGis.GEOMETRYColumn])); 
        } 
        catch (global::System.InvalidCastException e) { 
         throw new global::System.Data.StrongTypingException("The value for column \'GEOMETRY\' in table \'Gis\' is DBNull.", e); 
        } 
       } 
       set { 
        this[this.tableGis.GEOMETRYColumn] = value; 
       } 
      } 

있습니다 :고유 = 거짓
이름 = GEOMETRY 여기

는 데이터 세트/지오메트리 필드의 MyDS.Designer.cs입니다 기록. GEOMETRY 필드가 null로 돌아가고 해당 필드에 대해 StrongTypingException 오류가 발생하는 이유는 무엇입니까?

감사의 말 전에

답변

0

해결되었습니다.

여기 단계가 있습니다. 기본적들이 필드에 다시 참여 :

  1. 을 XSD 디자이너에서, 오른쪽 테이블의 디자인에서 GEOMETRY 열을 클릭하고 삭제를 선택합니다. 오른쪽 테이블을 클릭하고 "구성"을 선택합니다 XSD 디자이너에서

  2. 을 (당신이 GEOMETRY1라는 컬럼을 참조한다면, 또한 삭제), 지금 쿼리

  3. 에 GEOMETRY 칼럼을 다시 추가 테이블의 속성을 선택하고 GEOMETRY DataColumn을 선택하고 DataType을 System.Object에서 NetSdoGeometry.sdogeometry로 변경하십시오.

  4. 모든 쿼리를 확인하고이 스키마를 사용하려면 테이블 이름 앞에서 스키마를 제거하십시오 하나 이상의 스키마. 예를 들어 "select * from myshema.표 1은

  5. 프로젝트와 모든 설정을 다시 표 "SELECT * FROM"을 편집해야합니다 "

참고 :! 스키마 이름을 제거하는 경우, 당신은 전체에서 검색을 수행해야합니다 프로젝트를 "myshema"로 완전히 제거했는지 확인하십시오. 그리고 한 가지 더 말하면, 어떤 쿼리를 변경하면 다시 추가 할 것이므로 다시 제거해야합니다. 하드 코딩 된 스키마 이름 : http://social.msdn.microsoft.com/Forums/en-US/c89db0b1-b7ea-4b81-a222-03d375d36f7f/how-to-remove-oracle-schema-name-hardcoded-in-tableadapter-query?forum=adodotnetdataproviders