2013-02-03 2 views
1

나는 listbox와 picturebox가있는 양식을 가지고 있습니다. lisbox는 데이터베이스의 파일 이름으로 채워집니다. 사용자가 목록 상자에서 하나의 항목을 선택하면 그림이 그림 상자에 나타납니다. MySQL 데이터베이스에서 나는 pixName 필드 (varchar), pLocation (varchar) 필드를 가진 Pix를 가지고있다. pLocation에서 그림의 파일 경로를 저장했습니다.mysql 데이터베이스에 파일 경로를 저장하고 vb2008을 사용하여 파일 경로를 검색하십시오.

Call Connection() 
    With Me 
     STRSQL = "Select pLocation From Pix where pixName = " & lstPix.SelectedItem & "'" 
     Try 
      myCmd.Connection = myConn 
      myCmd.CommandText = STRSQL 
      reader = myCmd.ExecuteReader 
      If reader.Read Then 
       Dim path = reader.GetString(0) 
       picBox.ImageLocation = path 
      End If 
     Catch ex As Exception 
      MsgBox("no picture") 
     End Try 
    End With 

내가 실행할 때 오류는 없지만 목록 상자에서 하나를 선택하면 "no picture"라고 표시됩니다. 아무도 내가이 일을 제대로하도록 도와 줄 수 있습니까? 그것의 아주 긴급한, 나는 오늘 이것을 끝내야한다. 또한 동일한 코드를 사용하여 양식 안의 wmp 비디오를 재생할 수 있습니까? 미리 감사드립니다, Godbless.

+0

당신을 수행하십시오 :

STRSQL = "Select pLocation From Pix where pixName = '" & lstPix.SelectedItem.ToString() & "'" 

그리고 더 나은 솔루션 대신 매개 변수를 사용하는 것입니다 pLocation 필드 또는 전체 파일 이름에만 경로 이름을 저장 하시겠습니까? – Steve

+0

그림의 전체 경로 (예 : D : \ MyProject \ videos \ sample.jpg)를 저장했습니다. MySQL 문자열 값 내에서 백 슬래시가 이스케이프 문자로 해석되고 실제로 백 슬래시를 저장하는 "\"시퀀스를 포함하도록 경로 값을 변경하도록 제안했기 때문에 여기를 탐색하고 포럼을 찾았습니다. 그래서 파일 경로를 D : \\ MyProject \\ videos \\ sample.jpg로 저장했지만 여전히 실패했습니다. ( – VBeginner

답변

0

쿼리에 아포스트로피가 없다는 것이 확실합니다. 에 쿼리 변경 :

STRSQL = "Select pLocation From Pix where pixName = @pixName" 
myCmd.Parameters.AddWithValue("@pixName",lstPix.SelectedItem.ToString()) 
+0

시도했지만 여전히 동일한 결과를 얻었습니다. 도움말 : '( – VBeginner

+0

@VBeginner에 대한 자세한 내용을 제공해야합니다. 당신이 받고있는 오류 – AbZy

+0

거기에 아무런 오류가 있습니다. 문제는 제가 목록에있는 아이템을 선택할 때 이미 데이터베이스에 저장된 그림의 전체 경로를 갖고 있다고해도 catch 예외 메시지 "no picture"를 표시한다는 것입니다 (예 : D : \ MyProject \ videos \ sample.jpg) – VBeginner

0

사용이

dim kol as string 

OpenFileDialog1.ShowDialog() 

kol = OpenFileDialog1.FileName.Replace("\", "\\") 

TextBox1.Text = kol 

MySQL을 (삽입 및 업데이트 코드)

관련 문제