2014-11-06 2 views
0

임은 VARCHAR 값 '287201414153026341'의 오류 변환을 받고 작성하는 int 열이 넘쳐 나는 변환을 시도하는 SQL에서 일을하고있는 int 열변환이 정의되지 않은 데이터 테이블

그러나 아무것도 넘쳐 값을 varchar 열에서 int로 변환합니다.

Select * from view_spotcheck_manager 

이 값이라고보기에서 VARCHAR 컬럼에서 오는 즉 '예외가 라인에서 발생

DataTable dt = new DataTable(); 
SqlCommand cmd = new SqlCommand(); 
cmd.Connection = conn; 
cmd.CommandText = @query; 
conn.Open(); 

SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 


dt.Load(rdr); 

rdr.Close(); 
return dt; 

"REQUEST_ID

dt.Load(rdr); 

그것은 분명 보인다 어떤 이유에 대한 시스템은 그 값이 모두 숫자이며, varchar 컬럼인데 불구하고 그것을 지시받지 않고 int로 변환하려고 시도하고 있기 때문에 어떤 종류의 기본 beha Load() 메서드의 인스턴스입니다.

문제는이 작업을 수행하고 싶지 않습니다. varchar를 유지해야합니다.이 경우에는이 오류가 발생하지 않아야합니다. 강력한 형식의 DataTable 개체를 구성하고 각 열을 구체적으로로드하는 것은 간단합니다. 로드 메서드는이 모든 숫자 varchar 값을 int로 변환하지 않을 방법이 있습니까? ..

+1

보기가 열을 계산할 수 있으며 프로세스에서 실패한 변환을 시도 할 수 있습니다. 'view_spot'의 정의를 살펴보십시오. check_manager'를 데이터베이스에 저장하십시오. – HABO

+1

그래서 SSMS에서'Select * from view_spotcheck_manager'를 실행하면 전혀 오류가 발생하지 않습니까? – Lamak

+1

뷰의 정의는 무엇입니까? 뷰에서 변환 및 오버플로가 발생했습니다. –

답변

1

Load 메서드가 아닌 기본 뷰에 문제가 있음을 나타내는 주석으로 나타납니다.

관련 문제