Datagridview 查询有关问题
Datagridview 查询问题
请教 (注:基本目的达到即可给分,能回答advance的更棒!):
Basic:Datagridview已经绑定一个Access,想通过输入查询内容后点击查询按钮,查询过程都在Datagridview里进行,光标自动移动到想到达的行上。但是不知道该怎么通过查询的信息得到该行号,倘若行号知道后,就能用下列语句移动光标了:
Cali_Record.FirstDisplayedScrollingRowIndex = index
Cali_Record.Rows(index).Selected = True
思路是这样的,但是进行不下去了…
Dim strTable As String = TextBox1.Text
Dim strSQL As String = "select * from " & strTable
。。。
Advance:
1. 每个TextBox绑定一个固定列,最好通过就查询该列得到行号(比如TextBox1的内容就在Columns(0)),既保证正确性,又提高搜索速度;
2. Index可能是多个数,比如查询后得到多个行号,这几行都要显示出来,最好是亮标;
3. 交叉查询功能(即通过TextBox1和TextBox2的搜索结果得到交集);
4. 模糊查询功能(即TextBox1输入的内容少个字符也可以查询到)。
问题比较多,望高手给予正解!
------解决方案--------------------
正好今天有点时间,看了楼主的问题,写了下面代码,参照下吧,不能完全实现,但至少提供了思路,稍微变通应该能实现楼主要求把。
请教 (注:基本目的达到即可给分,能回答advance的更棒!):
Basic:Datagridview已经绑定一个Access,想通过输入查询内容后点击查询按钮,查询过程都在Datagridview里进行,光标自动移动到想到达的行上。但是不知道该怎么通过查询的信息得到该行号,倘若行号知道后,就能用下列语句移动光标了:
Cali_Record.FirstDisplayedScrollingRowIndex = index
Cali_Record.Rows(index).Selected = True
思路是这样的,但是进行不下去了…
Dim strTable As String = TextBox1.Text
Dim strSQL As String = "select * from " & strTable
。。。
Advance:
1. 每个TextBox绑定一个固定列,最好通过就查询该列得到行号(比如TextBox1的内容就在Columns(0)),既保证正确性,又提高搜索速度;
2. Index可能是多个数,比如查询后得到多个行号,这几行都要显示出来,最好是亮标;
3. 交叉查询功能(即通过TextBox1和TextBox2的搜索结果得到交集);
4. 模糊查询功能(即TextBox1输入的内容少个字符也可以查询到)。
问题比较多,望高手给予正解!
------解决方案--------------------
正好今天有点时间,看了楼主的问题,写了下面代码,参照下吧,不能完全实现,但至少提供了思路,稍微变通应该能实现楼主要求把。
'1.Binding Access data with Datagridview
Dim tableName As String = "a"
Dim con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb")
Dim sql As String = "select * from " & tableName
Dim conAdapter As New OleDb.OleDbDataAdapter(sql, con)
Dim ds As New DataSet
conAdapter.Fill(ds, tableName)
Dim dataTabelObj As DataTable = ds.Tables(tableName) '绑定的数据表
DataGridView1.DataSource = dataTabelObj
'2.查询特定内容 Rows
Dim selectValue As String = TextBox1.Text
'假定datagridview绑定的表 有四个字段:ID(key),Name,Address, Tel,与datagridview字段一一对应
'
Dim orderSelectDataRows As DataRow() = dataTabelObj.Select(String.Format("Name like %" & selectValue & "% or Address like %" & selectValue & "% or Tel like %" & selectValue & "%")) '表中的所有字段匹配查询下