这是我第一天来到这个网站,向你们寻求帮助,作为像我这样的初学者的绝佳资源。我希望我能从这个网站学到很多。
切中要害:我正在用VB.NET和MS SQLServer 2014为桌面应用程序编写VB,目前安装在我的机器上。我的项目名称叫"员工数据库"。我创建了带有一些文本框的表单,员工的信息希望从SQL Server表"tblEmployees"中检索
我已经用以下代码用sql服务器表"tblEmployees"中的用户详细信息填充了Listview。
Imports System.Data.SqlClient
Public Class frmManageEmploye
Dim cn As New SqlConnection With {.ConnectionString = "Data Source=ANGD0542;Initial Catalog=ES&HDB;Integrated Security=True"}
Dim cmd As New SqlCommand
Dim dr As SqlDataReader
Private Sub filllistview()
cn.Open()
With cmd
.Connection = cn
.CommandText = "SELECT EmpID, EmpName, Company, JobTitle, CraftClass, CraftCode, Department, Superintendent, Nationality, HireDate, ImagePath FROM tblEmployees"
End With
dr = cmd.ExecuteReader
While dr.Read
With emplistview
.Items.Add(dr.Item(0)) ' Emp Badge
With .Items(.Items.Count - 1).SubItems
If Not IsDBNull(dr(1)) Then ' Emp Name
.Add(dr(1))
End If
If Not IsDBNull(dr(2)) Then ' Company
.Add(dr(2))
End If
If Not IsDBNull(dr(3)) Then ' Job Title
.Add(dr(3))
End If
If Not IsDBNull(dr(4)) Then ' Craft Class
.Add(dr(4))
End If
If Not IsDBNull(dr(5)) Then ' Craft Code
.Add(dr(5))
End If
If Not IsDBNull(dr(6)) Then ' Department
.Add(dr(6))
End If
If Not IsDBNull(dr(7)) Then ' Superintendent
.Add(dr(7))
End If
If Not IsDBNull(dr(8)) Then ' Nationality
.Add(dr(8))
End If
If Not IsDBNull(dr(9)) Then ' Hire Date
.Add(dr(9))
End If
If Not IsDBNull(dr(10)) Then 'Image Path
.Add(dr(10))
End If
End With
End With
End While
cn.Close()
End Sub
Private Sub frmManageEmploye_Load(sender As Object, e As EventArgs) Handles MyBase.Load
filllistview()
End Sub
...
End Class
现在,我的下一个挑战是,当我在列表视图中单击特定员工的徽章编号时,将用户信息以及存储在SQL Server表中的图像路径中的员工图片检索到表单中的文本框中。我想通过使用where子句选择语句来实现这一点。
我相信,自从我刚进入VB.Net以来,有人已经提出了这个最古老的问题,我正在努力学习这个问题。请帮忙,提前感谢!
对不起,可能我没有足够的勇气寻求帮助。然而,我想在EmpID等于listview.selecteditems on click事件的窗体上实现员工图片的视图。我已经将图片路径存储到sql server表中,图片存储在共享驱动器中,因为将图片本身附加到数据库表中不是一个好主意。在反复研究代码和一些额外的努力之后,我终于达到了我想要的结果。
我已经用以下代码成功地将信息检索到表单文本字段中。当我点击列表视图将员工的信息检索到文本字段时,工作正常
Private Sub emplistview_Click(sender As Object, e As EventArgs) Handles emplistview.Click
cn.Open()
With cmd
.Connection = cn
.CommandText = "SELECT * FROM tblEmployees where EmpID='" & emplistview.SelectedItems.Item(0).SubItems(0).Text & "'"
End With
dr = cmd.ExecuteReader
While dr.Read
txtEmpID.Text = dr.Item("EmpID")
txtEmpName.Text = dr.Item("EmpName")
txtcompany.Text = dr.Item("Company")
txtjobtitle.Text = dr.Item("JobTitle")
txtcraftclass.Text = dr.Item("CraftClass")
txtNationality.Text = dr.Item("Nationality")
txtcc.Text = dr.Item("CraftCode")
txtdepartment.Text = dr.Item("Department")
txtsuperintendent.Text = dr.Item("Superintendent")
txthiredate.Text = dr.Item("HireDate")
txtImagePath.Text = dr.Item("ImagePath")
End While
cn.Close()
'ShowImage()
getempimage()
End Sub
我已经创建了另一个子系统来获取图片路径,并从共享驱动器的文件夹中检索图片,并根据需要实际给我结果。请告知以下代码是否有效编写或有任何更大的想法来实现目标
公共子getempimage()尝试'初始化与sql server的连接Dim connString As String="数据源=ANGD0542;初始目录=ES&HDB;集成安全性=True;"Dim dbadaptor作为新的SqlDataAdapter将数据库数据集Dim为新数据集将数据库连接Dim为SqlConnectiondbconnection=新建SqlConnection(connString)'打开连接数据库连接。打开()'从表中选择员工徽章等于列表的员工图片查看所选项目dbadaptor=新建SqlDataAdapter("从tblEmployees WHERE EmpID='中选择ImagePath"&emplistview.SelectedItems.Item(0).SubItems(0).Text&"'",数据库连接)dbadaptor。填充(数据库数据集)如果(dbdataset.Tables(0).Rows.Count-1>=0)则PictureBox1.Image=Image.FromFile(dbdataset.Tables(0).Rows(0).Item(0).ToString)结束如果Catch ex As Exception'如果找不到图片或图片未附加到表,则显示消息MessageBox.Show("未找到员工图片")最后
If cn.State = ConnectionState.Open Then
'Close connect if connection state is still open
cn.Close()
End If
End Try
End Sub
感谢