1

현재 Visual Studio 2008 (VB.Net) 및 SQL Server 2008을 사용하고 있습니다. 데이터베이스에 image으로 저장된 이미지가 있습니다. 내 코드에 가져올 때 System.Byte[]이고 내 DevExpress (v10.2) .XtraEditors.ImageEdit에 저장하려면 System.Drawing.Image으로 캐스팅 할 수 없습니다. 내가하려고 할 때 "매개 변수가 유효하지 않습니다"GET으로SQL 데이터베이스에서 이미지를 System.Drawing.Image로 변환하는 방법?

나는 아직

Dim imgStream As MemoryStream = New MemoryStream(image, 0, image.Length) 

또는

Dim imgStream As MemoryStream = New MemoryStream(image) 

에 시도도 그때 image.FromStream(imgStream) 또는 bitmap.FromStream(imgStream)를 호출 할 수 없습니다입니다.

편집 : 우리는 내가 프로그램에서 이미지를 볼 수 있습니다 이전 프로그램을 실행하면 SQL 2000에 있던 이전의 시스템에서 업데이트

. 새 이미지를 실행할 때 내가 마이그레이션 한 이미지가 '유효하지 않은 매개 변수'이지만 아직 데이터베이스에 추가 한 이미지 (프로그램의 입력을 통해 볼 수 있음)를 볼 수 있습니다. 이전 데이터베이스와 새 데이터베이스에서 이미지를 가져올 때 정확히 동일합니다. 데이터를 마이그레이션 할 때 고려해야 할 SQL 2000과 SQL 2008의 차이점이 있습니까?

+2

데이터베이스는 이미지를위한 장소가 아닙니다. 더 나은 방법은 이미지 경로를 데이터베이스에 저장하는 것입니다. 열 유형'image'는 이미지와 아무 관련이 없습니다. 단지 이진 데이터를 저장할 수 있습니다. – Dani

+0

Dani는 100 % 정확합니다. –

+0

불행히도이 작업은 시작하기 전에 시작되었습니다. 프로그램이 여러 컴퓨터에 배포되므로 모든 사람이 자신의 컴퓨터에 이미지가 없으므로 동일한 경로가 필요하지 않으므로 이미지가되어야합니다. – Kyra

답변

1

이 시도 :

Dim MyConverter as ImageConverter = new System.Drawing.ImageConverter() 
Dim MyImage as Image = imageConverter.ConvertFrom(byteArray) 

그러나,이 오류가 일반적으로 입력 데이터가 유효하지 않음을 의미한다. 바이트 배열에 유효한 이미지 데이터가 있는지 확인하십시오.

+0

이전과 같은 오류가 발생했습니다 (매개 변수가 유효하지 않습니다). 이전 프로그램을 업데이트하고 데이터를 이전했습니다. 데이터베이스의 두 이미지를 비교하면 동일한 데이터가 제공되며 이전 프로그램에서 로고가 표시되므로 입력 데이터가 유효하다고 생각할 수 있습니다. – Kyra

관련 문제