ado和datagrid的组合,数据库是升序排列的,怎样才能让它降序呢

say1no2 2003-01-10 11:51:55
能给个简单的例子看看,最好了!谢谢
...全文
433 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2003-02-13
  • 打赏
  • 举报
回复
大哥借你的地方问个问题,因为我没分了!
问题:怎么用adodc和datagrid实现分页呢???
给点小例子吧!!!求 求了!!
maskzha 2003-02-13
  • 打赏
  • 举报
回复
up
moyaxu 2003-01-31
  • 打赏
  • 举报
回复
建议:打开recordset时不要用res.Open "select * from cd ORDER BY cd_id DESC", conn, 3, 1而应为
rs.Open strSql, Conn, adOpenStatic, adLockReadOnly
把sql语句放入一个string中,尽量不要写阿拉伯数字,写常数变量。
connection默认cusorlocation为aduseserver,如果不追求速度,尽量用aduseclient,你不能显示可能是因为没有把datagrid的具体的每一列与recordset绑定,自己查查datagrid的属性
yun_yxr 2003-01-31
  • 打赏
  • 举报
回复
我还试,不过我认为只要在设计时对DATAGRIDE中的数据列不做定义只让它和ADO关
联,那么它显示的数据就应该是ADO.RECORDSET中的数据,只要记录集中的数据是降序那么显示在DATAGRIDE中的就应该是降序。
  • 打赏
  • 举报
回复
With DataGrid1
Set .DataSource = res
End With

在2000下很正常,但是在98会出错,不信试试。
Aspire 2003-01-31
  • 打赏
  • 举报
回复
有一行打字出问题了,应该为
On Error Resume Next
Aspire 2003-01-31
  • 打赏
  • 举报
回复
最简单的办法:
1-ado控件使用一种Select语句找出数据。
2-在DBGrid1控件的HeadClick事件中,写如下代码
On Error R
On Error Resume esume Next
Adodc1.recordset.Sort=Dbgrid1.collums(Colindex).DataFields.Name

即可根据点击不同的网格标题实现不同的排序
ksmark 2003-01-29
  • 打赏
  • 举报
回复
写入Datagrid1中的语句在那里呢?可否说说
XLYT 2003-01-11
  • 打赏
  • 举报
回复
datagrid1.refresh
redwrite 2003-01-11
  • 打赏
  • 举报
回复
ado指针自己就有排序的功能。
res.sort="字段名"反序的话就加desc
say1no2 2003-01-11
  • 打赏
  • 举报
回复
这样做后,数据是找到了,可就是不能在网格内显示,是不是还缺什么东西???
Dim conn As New adodb.Connection
Dim res As New adodb.Recordset
If conn.State = adStateOpen Then
conn.Close
End If
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" _
& "Data Source=" & App.Path & "\db.mdb;Jet OLEDB:database ")
'conn.CURSORLACTION = LOCALCLIENT
'conn.CursorLocation = adUseClient
conn.CursorLocation = adUseServer
If res.State = adStateOpen Then
res.Close
End If
res.Open "select * from cd ORDER BY cd_id DESC", conn, 3, 1

MsgBox res(1)

With DataGrid1
Set .DataSource = res
End With
say1no2 2003-01-11
  • 打赏
  • 举报
回复
to:sys_wkq(吴克青)
谢谢,我按照你说的改了一下,可是还有错
Private Sub Command2_Click()
Dim conn As New adodb.Connection
Dim res As New adodb.Recordset
If conn.State = adStateOpen Then
conn.Close
End If
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" _
& "Data Source=" & App.Path & "\db.mdb;Jet OLEDB:database ")
conn.CURSORLACTION = LOCALCLIENT
If res.State = adStateOpen Then
res.Close
End If
res.Open "select * from cd ORDER BY cd_id DESC", conn, 3, 1
With DataGrid1
Set .Recordset = res----------错误提示:未找到方法或数据成员
End With
End Sub
say1no2 2003-01-11
  • 打赏
  • 举报
回复
to: realmayer(realmayer)

Zhaojing(思想未知) 可能是打错字了,我找不到有这个属性,运行的时候报错,我只找到holdfields,你要是不知道,就别在这人云亦云了
Erice 2003-01-10
  • 打赏
  • 举报
回复
set datagrid1.datasource=rs 或
adodc1.refresh
set datagrid1.datasource=adodc1.recordset
datagrid1.rebin
datagrid1.refresh
say1no2 2003-01-10
  • 打赏
  • 举报
回复
这个我会写,我的问题是,我不知道怎么让它在datagrid中显示
dongdonghan 2003-01-10
  • 打赏
  • 举报
回复
"Select * from table order by id desc",desc就是降序。
sys_wkq 2003-01-10
  • 打赏
  • 举报
回复
dim conn as new adodb .connection
dim res as new adodb.recordset
if conn.state =adstateopen then
conn.close
end if
conn.open "your connectionstring"
CONN.CURSORLACTION=LOCALCLIENT
if res.state=adstateopen then
res.close
end if
res.open "select * from SPXX ORDER BY ( YOUR FIELDS) DESC",CONN,3,1
WITH DBGRID1
SET .RECORDSET =RES
END WITH
-----------------------------------
关键语句在于SQL: ORDER BY DESC | ASC
realmayer 2003-01-10
  • 打赏
  • 举报
回复
大哥
是datagrid1.hotfield
不是DataGrid1.HoldFields
say1no2 2003-01-10
  • 打赏
  • 举报
回复
快下班了,各位帮帮忙吧!
say1no2 2003-01-10
  • 打赏
  • 举报
回复
to: Zhaojing(思想未知)
谢谢你的回答,不过我加上DataGrid1.HoldFields后还是不能显示
加载更多回复(3)

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧