2014-04-05 1 views
0

Windows 형식이 하나 있습니다. 이 양식에서 이미지를 업데이트 할 때이 메시지가 표시됩니다. "변환이 지원되지 않습니다. [변환 할 형식 (nh)] = nvarchar, 변환 할 형식 (이미지 인 경우) =" 데이터 유형이 이미지 .. 변환이 지원되지 않습니다. [변환 할 유형 (알려진 경우) = nvarchar, 변환 할 유형 (알려진 경우) =

내 코드입니다 : 나에게 해결책을주지하시기 바랍니다 ...

   ms = new MemoryStream(); 
       pictureBox1.Image.Save(ms, ImageFormat.Jpeg); 
       photo_aray = new byte[ms.Length]; 
       ms.Position = 0; 
       ms.Read(photo_aray, 0, photo_aray.Length); 



       cmd = new SqlCeCommand("update register set name='" + textBox1.Text + "' ,address='" + textBox2.Text + "',mobile='" + textBox3.Text + "',gender='" + a + "',dob='" + textBox4.Text + "' ,photo='"+byteArrayToImage(photo_aray)+"',worktype='" + comboBox2.SelectedItem + "',workertype='" + comboBox1.SelectedItem + "',dor='" + textBox5.Text+ "' where name='" + comboBox3.SelectedItem.ToString() + "'", con); 
       cmd.ExecuteNonQuery(); 




    //convert bytearray to image... 
    public Image byteArrayToImage(byte[] byteArrayIn) 
    { 
     MemoryStream ms = new MemoryStream(byteArrayIn); 
     Image returnImage = Image.FromStream(ms); 
     return returnImage; 
    } 

답변

0

첫째, 매개 변수가있는 쿼리를 http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlcecommand.parameters(v=vs.100).aspx

둘째를 사용하려면, "영상 "데이터베이스의 유형은"이진 데이터 "를 의미하며 .NET의 Image 클래스와 동일하지 않습니다. byteArrayToImage()가 반환하는 이미지가 아니라 바이트 배열 자체를 전달하려고합니다.

+0

감사합니다 ... 귀하의 제안에 의해 해결되었습니다. 한 번만 더.하지만 여전히 한 가지 문제가 있습니다. 저는 응용 프로그램을 배포하고 연결 문자열은 다음과 같습니다. SqlConnection con = new SqlConnection (@ "Data Source =. \ SQLEXPRESS; AttachDbFilename = C : \\ sailesh \ Desktop \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ Database1.mdf; 통합 보안 = True; 사용자 인스턴스 = True "); –

+0

하지만 배포 후 다른 PC에서 설치 프로그램을 실행하면 다음 오류 메시지가 나타납니다. "C : \ Users \ vivek.nuna \ Documents \ VisualStudio2005 \ Projects \ SubsystemSyncService \ TestClient \ bin \ Debug \ aspnetdb.mdf가 실패했습니다. 같은 이름의 데이터베이스가 있거나 지정된 파일을 열 수 없거나 UNC 공유에 있습니다. " .. 제게 해결책을주세요. 아주 중요합니다. –

+0

정보가 충분하지 않습니다. 그러나 오류 메시지는 스스로 추적해야하는 것을 제공해야합니다. –