2014-09-16 4 views
-2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    Try 
     Dim con As New SqlConnection 
     Dim cmd As New SqlCommand 
     Dim a As New OpenFileDialog 
     con.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\USERS\USER\DOWNLOADS\SDP(BACKUP1)\SDP(BACKUP)\SDP.MDF;Integrated Security=True" 
     con.Open() 
     cmd.Connection = con 

     cmd.CommandText = "INSERT INTO Announcement ([name],[picture]) VALUES('" & nameTB.Text & "',@a2)" 
     cmd.Parameters.Add(New SqlClient.SqlParameter("@a2", SqlDbType.Image)).Value = IO.File.ReadAllBytes(PictureBox2.BackgroundImage) 
     cmd.ExecuteNonQuery() 
     MsgBox("Event Announcement submitted!") 

     con.Close() 
    Catch ex As Exception 
     MsgBox("Operation Failed! Please Check Again!") 
    End Try 
End Sub 

이것은 내가 시도한 것이다. 나는 이미지를 선택할 수있다. SQL 서버 또는 액세스에 그림 저장 ... 나는 그것을 시도했다 ...하지만 내가 숙달 한 가장 마지막 것은 그림 상자로 매개 변수 @ a2를 어떻게 할 수 있는가? IO.File.ReadAllBytes (PictureBox2.BackgroundImage)나는 데이터베이스에 그림을 저장하고 싶다

+2

의 중복 가능성 [데이터베이스에 사진을 저장하는 방법] (http://stackoverflow.com/questions/6861038/how-to-save-picture-in- 데이터베이스에 더하기) 플러스 구글에 따른 "약 128,000"기타 – Plutonix

+0

문자 그대로 Google에 "데이터베이스 vb.net에 그림을 저장하는 방법"을 입력하고 * 여기에 몇 가지 * 자습서가 있습니다. : P – jbutler483

+0

File.ReadAllBytes가 파일을 원합니다. 당신은 이미지를주었습니다. 파일 스트림이 아닌 메모리 스트림이 필요합니다. – LarsTech

답변

0

주석으로, File.ReadAllBytes는 이미지가 아닌 파일을 원합니다. 그래서 대신 MemoryStream을을 사용해야합니다

Using ms As New MemoryStream 
    PictureBox2.BackgroundImage.Save(ms, ImageFormat.Png) 
    cmd.Parameters.AddWithValue("@a2", ms.ToArray) 
End Using 
관련 문제