2014-02-15 3 views
0

Good Day! 나는 현재 VB.Net에서 Access Database로 학생 관리 정보 시스템을 구축 중이다. 다음을 제외하고는 모든 것이 완벽하게 작동합니다.MS Access 데이터베이스에서 사진을 표시

현재 로그인 한 사용자의 이미지를 그림 열에서 표시합니다.

모든 텍스트 필드

는 현재 로그인 한 사용자에 따라 내 데이터베이스에 할당 된 모든 값을 표시하는 여기에 사용자의 정보를 표시하는 내 코드입니다. 내가 너무에서 사용자의 사진을 넣을

Dim cn As New OleDbConnection("Provider=Microsoft.Ace.Oledb.12.0; Data Source=" & My.Application.Info.DirectoryPath.ToString() & "\Data\Db\Faculty.mdb;") 
    Dim dr1 As OleDbDataReader 
    Dim com As New OleDbCommand 


    com.CommandText = "select [Username],[Fname],[Lname],[Mname],[NickName],[Birthday],[Adds],[City],[CounPC],[Gender],[Religion],[Citizenship],[Contact],[stats],[Fathername],[Mothername],[FMAddress],[CollCourse],[VocCourse],[ElemEd],[ElemGrad],[HighEd],[HighGrad],[CollegeEd],[CollegeGrad],[VocationalCourse],[Skills],[Company],[Company1],[Position],[Position1],[YrStart],[YrStart1] from Personal where Username = '" & mainForm.TSUname.Text & "'" 
    com.Connection = cn 
    If cn.State = ConnectionState.Closed Then cn.Open() 

    ' Username 
    Dim Username As OleDbParameter = New OleDbParameter("@Username", OleDbType.VarWChar, 50) 
    Username.Value = mainForm.TSUname.Text.ToString 
    com.Parameters.Add(Username) 

    dr1 = com.ExecuteReader 
    If dr1.Read Then 
     If dr1(1) = My.Settings.CurrentUserName.ToString Then 
      ' Personal Information 
      tbFname.Text = dr1(1) 
      tbLname.Text = dr1(2) 
      tbMname.Text = dr1(3) 
      lblNickname.Text = dr1(4) & "!" 
      tbBday.Text = dr1(5) 
      tbAdd.Text = dr1(6) 
      tbCity.Text = dr1(7) 
      tbCountry.Text = dr1(8) 
      tbGender.Text = dr1(9) 
      tbReligion.Text = dr1(10) 
      tbCitizenship.Text = dr1(11) 
      tbContact.Text = dr1(12) 
      tbStatus.Text = dr1(13) 
      ' Parents 
      tbFather.Text = dr1(14) 
      tbMother.Text = dr1(15) 
      tbAddress.Text = dr1(16) 
      'Educational Background 
      tbCollCourse.Text = dr1(17) 
      tbVocCourse.Text = dr1(18) 
      tbElemEd.Text = dr1(19) 
      tbElemGrad.Text = dr1(20) 
      tbHSEd.Text = dr1(21) 
      tbHSGrad.Text = dr1(22) 
      tbCollED.Text = dr1(23) 
      tbColGrad.Text = dr1(24) 
      tbVocational.Text = dr1(25) 
      tbSkill.Text = dr1(26) 
      ' Employment Background 
      tbCompany.Text = dr1(27) 
      tbCompany1.Text = dr1(28) 
      tbPosition.Text = dr1(29) 
      tbPosition1.Text = dr1(30) 
      tbStart.Text = dr1(31) 
      tbStart1.Text = dr1(32) 
     Else 
      MessageBox.Show("Incorrect Input", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
     End If 
    Else 
     MessageBox.Show("UserID is Wrong", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End If 

을 내 PictureBox. 그러나 어떻게? 어떤 도움이라도 대단히 감사하겠습니다. 감사!

+0

저장시 이미지를 바이트 배열로 변환 한 다음 레코드를 읽을 때 다시 변환해야합니다. [이 답변] (http://stackoverflow.com/q/217928/1070452) C# (기본적으로 이미지 -> memstream -> 바이트())에 대한 그 일을 않습니다. 또한 SQL 주입 공격을 피하기 위해 SQL 매개 변수를 구현해야합니다. – Plutonix

+0

답변 해 주셔서 감사합니다. 어쨌든, 나는 그/그녀의 코드를 복사하고 VB로 변환해야하나요? – Lezirhc

+0

BMP가 아닌 JPG를 기본으로 사용하므로 출력이 작아집니다. 그렇지 않으면 링크 코드의 마지막 4 줄을 사용하여 단계를 볼 수 있습니다 (역순으로 DB에 저장). 여기 VB 버전입니다 : http://stackoverflow.com/a/6861581/1070452 – Plutonix

답변

1

나는 대다수를 따라 특정 디렉토리에 이미지를 업로드 한 다음 데이터베이스에 경로를 저장합니다. 그런 다음 이미지를 가져 와서 내 picturebox의 imagePath 속성에 할당 할 때마다 경로를 가져옵니다.

+0

도움을 주신 모든 분들께 감사드립니다! – Lezirhc

관련 문제