VB.Net如何使用带Where子句的Select语句从SQL Server表中检索信息以形成文本框



这是我第一天来到这个网站,向你们寻求帮助,作为像我这样的初学者的绝佳资源。我希望我能从这个网站学到很多。

切中要害:我正在用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

感谢

最新更新