0

我有一个正在使用的DataGridView显示Datadbo.tblAttendanceTimestblAttendanceTimesTableAdapter.GetDataBy(intEmployee)

所以很明显它将显示Data所选员工的所有信息。

员工分为 3 组。我想要做的是显示我正在查看的特定组0的 in[intApprovedOvertime] Column中值的所有记录。dbo.tblAttendanceTimes

只是GetDataBy(intEmployee)让这变得困难,没有[intAttendanceGroup] Column在那个Table或者我可以GetDataBy(intAttendanceGroup)

目前我拥有pk组中员工的所有值,但我正在努力检索该员工的所有记录显示它们然后执行下一个员工并添加到先前显示的。

我希望我是有道理的,请询问您想要的任何其他信息。

4

1 回答 1

0

两个解决方案可能很有趣:

  • 将数据库结果直接链接到 DGV 非常便于更新,但如果需要移动行则较少
  • 将查询中的数据作为行插入,您首先需要定义 DGV DataGridView2.Columns.Add()的列

1/

Using con As New SqlClient.SqlConnection("YOUR SQL CONNECTION STRING")
    Dim sqlString As String = "SELECT * FROM Table WHERE intApprovedOvertime = 0 AND fkEmployee = pkEmployee"
    con.Open()
    Dim da As New SqlClient.SqlDataAdapter(sqlString, con)
    Dim ds As New DataSet
    da.Fill(ds, "Table")
    DataGridView1.DataSource = ds.Tables("Table")
    ds.Dispose()
    da.Dispose()
    SqlConnection.ClearPool(con)
End Using

2/

Using con As New SqlClient.SqlConnection("YOUR SQL CONNECTION STRING")
 Dim command As New SqlCommand("SELECT * FROM Table WHERE intApprovedOvertime = 0 AND fkEmployee = pkEmployee", con)
        Dim reader As SqlDataReader = command.ExecuteReader()
        While reader.Read()
            DataGridView1.Columns.Rows.Add(reader(0), reader(1))
        End While
End Using

在第 2 点中,您需要记住使reader(x)适应您需要添加到行的值的数量。您还可以通过以下方式获取特定列:

"SELECT Table.Name, Table.Position FROM Table WHERE intApprovedOvertime = 0 AND fkEmployee = pkEmployee"

可能有一些小的语法错误我没有带 IDE 哈哈。

于 2017-04-13T12:26:02.750 回答