강력하게 입력 된 데이터 세트에 dbnull을 값으로 포함하려면 어떻게해야합니까?

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

문제

.NET 앱에서 강력하게 입력 한 데이터 세트 (MyDataset)를 만들었습니다. 단순성을 위해, 하나의 열 (mycol)과 함께 하나의 데이터 가능 (myDatatable)이 있다고 말할 것입니다. MyCol에는 "System.INT32"로 설정된 데이터 유형 속성이 있으며 AllowDBNull 속성이 "True"로 설정되어 있습니다.

새 행을 수동으로 만들고이 데이터 세트에 추가하고 싶습니다. 나는 다음과 같이 문제없이 행을 만듭니다.

MyDataSet.MyDataTableRow myRow = MySimpleDataSet.MyDataTable.NewItemRow();

괜찮은. 그러나 값을 dbnull로 설정하려고 할 때 :

myRow.MyCol = DBNull.Value;

나는 그것을 할 수 없다고 들었습니다 ... 그것은 그것을 int에 캐스팅 할 수 없다고 들었습니다. 내가 int로 정의했기 때문에 이것은 어떤 식 으로든 의미가 있습니다 ... 그러나 어떻게 dbnull을 거기에 넣을 수 있습니까? 거기에 dbnull을 가질 수 없어야합니까? 그것이 허용 된 속성이 무엇인지 아닌가?

나는 분명히 자금을 놓친 것을 놓쳤다. 누군가가 무엇인지 설명 할 수 있습니까?

편집하다: 나는 또한 "int?"에 들어가려고 노력했다. 데이터 유형이지만 Visual Studio를 입력 할 때 오류가 발생하여 "열에는 유효한 데이터 유형이 필요합니다"라고 말합니다.

도움이 되었습니까?

해결책

MyDatatablerow 클래스 A에 다음과 같은 이름이 있습니다 : setmycolnull ().

myRow.SetMyColNull();

당신은 또한 할 수 있습니다 :

myRow["MyCol"] = DBNull.Value;

왜냐하면 myRow["MyCol"] 유형입니다 object

편집 (질문 OP에 의해 추가) :

이 값을 다시 읽기 위해 생성 된 대응 방법이 있습니다. ismycolnull ().

다른 팁

두 가지가 있습니다.

dbnull을 허용하는 것은 값을 dbnull로 설정할 수있는 것과 별도의 설정입니다.

나는 이것을 설정하기 위해 DataSet XSD 인터페이스 만 사용했지만 "allowdbnull = true"를 설정해야했을뿐만 아니라 "nullValue = (null)"을 설정해야했습니다. 원래 "NullValue"는 "(예외)로 설정되었습니다. 이는 데이터 세트가 null로 bieng .fill ()를 수락하지만 값을 null로 수동으로 설정할 수는 없음을 의미했습니다.

이것이 당신의 문제인지 확실하지 않지만 비슷하게 들립니다.

NULL을 활성화하려는 필드를 마우스 오른쪽 버튼으로 클릭하고 속성 창에서 속성을 선택하고 alevingDbNull을 true로 설정하고 (null)로 설정하십시오. 그것은 나를 위해 작동합니다! 친애하는 !

int는 null을 받아들이지 않지만 int? (unullable 버전). 대신 해당 데이터 유형이 필요하다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top