2014-02-15 88 views
0

美好的一天!我目前正在使用Access数据库在VB.Net中构建一个学生管理信息系统。除此之外,所有内容都可以正常工作:从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#(基本上是image-> memstream - > byte())是这样做的。您还需要实现SQL参数以避免SQL注入攻击。 – Plutonix

+0

感谢您的回答。无论如何,我是否必须复制他/她的代码并将其转换为vb? – Lezirhc

+0

我会使用JPG作为基础而不是BMP - 它会导致较小的输出。否则,您可以使用最后4行代码来查看步骤(反向保存到数据库)。这里是一个VB版本:http://stackoverflow.com/a/6861581/1070452 – Plutonix

回答

1

我跟随了大多数人,只是上传图像在一个特定的目录,然后将其路径存储在我的数据库。然后,只要我想要检索图像并将其分配给我的图片框的imagePath属性,我就会获取路径。

+0

感谢所有帮助过的人! – Lezirhc