1

ID 열이있는 테이블 A가 있습니다. 내가으로 VisualStudio를 통해 행을 삽입 할 때 는 다음과 같은 오류와 함께 SubmitChanges 실패 : 나는 구글이에 대한 검색과 내가 같은 문제에 대한 몇 가지 논의를 발견InvalidOperationException : SubmitChanges를 호출 할 때 null 값을 할당 할 수 없습니다.

InvalidOperationException: The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type 

. 그 중 하나는 Here입니다. 프로 시저가 null 값을 반환하기 때문입니다. 나는 거기에서 썼다. 사용 된 SQL 추적, 삽입 명령을 복사하고 SQL 서버에서 실행합니다. 실제로 null을 반환하지만 행이 올바르게 삽입되었습니다. 는 SQL 추적에서와 같이 명령 :

exec sp_executesql N'INSERT INTO [dbo].[MyName_Tbl]([x], [y], [z], [c], [v], [b], [n], [m], [a], [s], [d], [f], [g], [h], [j], [k], [l], [q], [w], [e], [r]) 
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20) 

SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]',N'@p0 varchar(8000),@p1 varchar(8000),@p2 nvarchar(4000),@p3 nvarchar(4000),@p4 varchar(8000),@p5 nvarchar(4000),@p6 varchar(8000),@p7 varchar(8000),@p8 nvarchar(4000),@p9 nvarchar(4000),@p10 nvarchar(4000),@p11 nvarchar(4000),@p12 nvarchar(4000),@p13 varchar(8000),@p14 varchar(8000),@p15 nvarchar(4000),@p16 varchar(8000),@p17 nvarchar(4000),@p18 nvarchar(4000),@p19 nvarchar(4000),@p20 decimal(5,2)',@p0='406',@p1='Kabala',@p2=N'01/05/2012 13:47:01',@p3=N'k406/00033',@p4='406/00033',@p5=N'xxx',@p6='127.0.0.1',@p7='10',@p8=N'yyy',@p9=N'hh hh',@p10=N'0527159080',@p11=N'',@p12=N'',@p13='4580',@p14='1',@p15=N'Visa',@p16='0115',@p17=N'10',@p18=N'0',@p19=N'0232323',@p20=0 

당신은 문제가 무엇 설명해 왜 SQL에서 제대로 실행되고 VS에서 나는 오류를받을 수 있습니까?

답변

2

받은 오류는 SQL Server에서 직접 실행할 때 제대로 작동하는 이유를 설명하는 잘못된 SQL 구문과는 아무 관련이 없습니다.

응용 프로그램에서 오류가 발생했습니다. SQL 문이 테이블에 마지막으로 삽입 된 ID의 값을 포함하는 int를 반환하지만 대신 NULL 값을 반환하기 때문에 오류가 발생합니다. Nullable<int> (int?)으로 선언하지 않으면 null을 int에 할당 할 수 없습니다.