显示SQL数据库中的特定数据,而不使用列进行筛选。 (VB.NET)

时间:2017-04-13 11:24:11

标签: vb.net datagridview datatableadapters

我有DataGridView使用Data

dbo.tblAttendanceTimes显示tblAttendanceTimesTableAdapter.GetDataBy(intEmployee)

很明显,它会显示所选员工的所有Data

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

由于GetDataBy(intEmployee)使这很困难,[intAttendanceGroup]中没有Column Table,或者GetDataBy(intAttendanceGroup)

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

我希望我有意义,请询问您想要的任何其他信息。

1 个答案:

答案 0 :(得分: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)适应您需要添加到Row的值的数量。您还可以通过以下方式获得特定列:

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

可能没有什么小的语法错误我没有IDE与我哈哈。