【问题标题】:Populate datagridview with click event使用点击事件填充 datagridview
【发布时间】:2014-05-07 05:27:01
【问题描述】:

我正在尝试在单击事件(如搜索按钮)上加载数据网格视图。在此过程中我没有收到任何错误,但我的 datagridview 没有填充。我知道打开我的数据库连接的方法是有效的,并且我的 SQL 语句也可以工作,因为我在 Access 中对其进行了测试,而且我相信如果它是 SQL 语句,它会被炸毁。我认为它在事件声明中,但我对 vb 很陌生。我的代码如下:

Private Sub btnQuickSearch_Click(sender As Object, e As EventArgs) Handles btnQuickSearch.Click
    dgvQuickSearchEmployee.Visible = True
    qSearchEmployee()

End Sub

Private Sub qSearchEmployee()
    conOpen()
    Dim qSearchString As String
    qSearchString = tbQuickSearch.Text
    qSearchString = qSearchString.ToUpper()



    sqlStr = "SELECT employeeID, firstName, lastName, department FROM [employee] WHERE (employeeID LIKE '*" & qSearchString & "*' OR firstName LIKE '*" & qSearchString & "*' OR lastName LIKE '*" & qSearchString & "*' OR department LIKE '*" & qSearchString & "*') AND active = TRUE"


    Dim ds As DataSet = New DataSet
    Dim dt As DataTable = New DataTable
    ds.Tables.Add(dt)
    Dim daEmployee As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sqlStr, con)
    daEmployee.Fill(dt)
    dgvQuickSearchEmployee.DataSource = dt.DefaultView
    dgvQuickSearchEmployee.Refresh()

End Sub

任何帮助将不胜感激。

**更新! 这是我的代码现在的样子(差别不大)。它现在正在填充 datagridview,但无论我对搜索做什么,它都不会返回任何结果。

Private Sub btnQuickSearch_Click(sender As Object, e As EventArgs) Handles btnQuickSearch.Click
    dgvQuickSearchEmployee.Visible = True
    qSearchEmployee()

End Sub

Private Sub qSearchEmployee()
    conOpen()
    Dim qSearchString As String
    qSearchString = tbQuickSearch.Text
    qSearchString = qSearchString.ToUpper()

    sqlStr = "SELECT employeeID, firstName, lastName, department FROM [employee] WHERE (employeeID LIKE '*" & qSearchString & "*' OR firstName LIKE '*" & qSearchString & "*' OR lastName LIKE '*" & qSearchString & "*' OR department LIKE '*" & qSearchString & "*') AND active = TRUE"

    Dim ds As DataSet = New DataSet
    Dim dt As DataTable = New DataTable
    ds.Tables.Add(dt)
    Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sqlStr, con)
    da.Fill(dt)
    dgvQuickSearchEmployee.DataSource = dt.DefaultView
    dgvQuickSearchEmployee.Refresh()

End Sub

【问题讨论】:

  • 你有没有把 dgvQuickSearchEmployee.DataSource = dt.DefaultView 改成 dgvQuickSearchEmployee.DataSource = dt

标签: sql vb.net visual-studio-2012 datagridview ms-access-2007


【解决方案1】:

试试这个代码

'Dim ds As DataSet = New DataSet    'Not required or Not inused
Dim dt As DataTable = New DataTable
'ds.Tables.Add(dt)          'Not required or Not inused
Dim daEmployee As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sqlStr, con)
daEmployee.Fill(dt)
dgvQuickSearchEmployee.DataSource = dt
dgvQuickSearchEmployee.Refresh()

【讨论】:

  • 没有用,但是谢谢!不过我应该放一个更新,现在看起来它正在填充,但它不会返回任何结果
【解决方案2】:

代替dgvQuickSearchEmployee.Refresh() 试试dgvQuickSearchEmployee.Databind()

【讨论】:

  • 虽然这可能提供解决方案,但请尝试详细说明您的建议以及为什么它可能是解决方案。事实上,这是一个糟糕的答案。
猜你喜欢
  • 2018-04-06
  • 1970-01-01
  • 2021-10-26
  • 2017-11-19
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 2012-10-11
  • 2015-09-25
相关资源
最近更新 更多