找回密码
 加入
搜索
查看: 5530|回复: 16

[AU3基础] listview 从数据库提取数据 为啥显示不全?[已解决]

[复制链接]
发表于 2019-11-15 10:05:00 | 显示全部楼层 |阅读模式
本帖最后由 xin266 于 2019-11-17 06:13 编辑
_SQLite_GetTable2d(-1, "SELECT * FROM jd;", $aResult, $aRow, $iColumns)
;MsgBox(1,$aRow,$iColumns)
MsgBox(1, $aResult[4][1], $aRow)

Local $i=1
While $i <= $aRow        
        _GUICtrlListView_AddItem($ListView1, $aResult[$i][0])
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][1], 1, 1)
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][2], 2, 2)
         $i = $i +1
WEnd

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-11-15 10:13:48 | 显示全部楼层
 楼主| 发表于 2019-11-15 11:49:14 | 显示全部楼层
啥都不显示了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-11-15 15:50:22 | 显示全部楼层
請提供資料庫 及 程式
 楼主| 发表于 2019-11-16 07:59:26 | 显示全部楼层
[code][/code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2019-11-16 08:01:03 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#NoTrayIcon
#include <Inet.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
#include <Array.au3>
#include<date.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 775, 516, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
;$ListView1 = GUICtrlCreateListView("", 0, 8, 761, 497,$LVS_SHOWSELALWAYS,$LVS_EX_GRIDLINES)

$ListView1 = GUICtrlCreateListView("", 0, 8, 761, 497, $LVS_SHOWSELALWAYS + $LVS_OWNERDATA, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT + $LVS_EX_DOUBLEBUFFER)
_GUICtrlListView_BeginUpdate($ListView1)
_GUICtrlListView_AddColumn($ListView1, '日期时间', 100)
_GUICtrlListView_AddColumn($ListView1, '产品名称', 300)
_GUICtrlListView_AddColumn($ListView1, '价格', 80)
GUICtrlSetFont(-1, 12, 4000, 0, "MS Sans Serif")
GUICtrlSetOnEvent(-1, "ListView1Click")
GUISetState(@SW_SHOW)
$SQLite_Data_Path = "jd.db"
Local $aRow
Local $aResult, $iRows, $iColumns, $hQuery, $ONd, $vv, $i
_SQLite_Startup() ;加载 SQLite.dll
If @error Then
        MsgBox(16, "SQLite Error", "SQLite3.dll Can't be Loaded!")
        Exit -1
EndIf
_SQLite_Open($SQLite_Data_Path)
;_SQLite_Query(-1, "SELECT * FROM jd;", $hQuery)
;_SQLite_FetchData($hQuery, $aRow)
;_SQLite_FetchData($hQuery, $aRow)
_SQLite_GetTable2d(-1, "SELECT * FROM jd;", $aResult, $aRow, $iColumns)
;MsgBox(1,$aRow,$iColumns)
MsgBox(1, $aResult[4][1], $aRow)
Local $i = 1
While $i <= $aRow
        _GUICtrlListView_AddItem($ListView1, $aResult[$i][0])
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][1], 1, 1)
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][2], 2, 2)
        $i = $i + 1
WEnd

_GUICtrlListView_EndUpdate($ListView1)
#CS For         $i =1 To $aRow
        ;MsgBox(1, $aRow[1], $aRow[$i])
        _GUICtrlListView_AddItem($ListView1,$aResult[$i][0])
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][1], 1, 1)
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][2], 2,2)
        Next
#CE


_SQLite_Close()
_SQLite_Shutdown()


While 1
        Sleep(100)
WEnd

Func Form1Close()
        Exit
EndFunc   ;==>Form1Close
Func Form1Maximize()

EndFunc   ;==>Form1Maximize
Func Form1Minimize()

EndFunc   ;==>Form1Minimize
Func Form1Restore()

EndFunc   ;==>Form1Restore
Func ListView1Click()

EndFunc   ;==>ListView1Click

发表于 2019-11-16 14:13:23 | 显示全部楼层
估计是 $ListView1 的样式/ 扩展样式出的 bug,
第20行 采用默认样式 试试,可以显示到数据 : $ListView1 = GUICtrlCreateListView("", 0, 8, 761, 497);, $LVS_SHOWSELALWAYS + $LVS_OWNERDATA, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT + $LVS_EX_DOUBLEBUFFER)
发表于 2019-11-16 14:15:02 | 显示全部楼层
将样式注释掉,可以完美显示 你要的数据
具体是那个样式/扩展样式,……水平有限 ……  等高人来解释吧………………
发表于 2019-11-16 14:19:50 | 显示全部楼层
我的笨办法就是,将样式/扩展样式一个一个进行测试,看看到底是哪个样式出的问题。。。。。
发表于 2019-11-16 15:18:03 | 显示全部楼层
楼主是做手机行业的么,我也是呢!这是采集京东入库?
 楼主| 发表于 2019-11-16 22:01:49 | 显示全部楼层
heavenm 发表于 2019-11-16 15:18
楼主是做手机行业的么,我也是呢!这是采集京东入库?

不是 我是想弄个监控京东价格的! 自己买的时候 知道最低价是多少 免得买高了
 楼主| 发表于 2019-11-16 22:05:09 | 显示全部楼层
floor6ggg 发表于 2019-11-16 14:13
估计是 $ListView1 的样式/ 扩展样式出的 bug,
第20行 采用默认样式 试试,可以显示到数据 : $ListView1  ...

1.2.3,4  都应该有数据才是!

注释之后   1.2.3,4   出来了 但是 后面的 产品名称价格 没出来!
 楼主| 发表于 2019-11-16 22:07:44 | 显示全部楼层
floor6ggg 发表于 2019-11-16 14:13
估计是 $ListView1 的样式/ 扩展样式出的 bug,
第20行 采用默认样式 试试,可以显示到数据 : $ListView1  ...


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-11-16 22:42:21 | 显示全部楼层
将46行的写入方式更改一下

While $i <= $aRow
        _GUICtrlListView_AddItem($ListView1, $aResult[$i][0])
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][1], 1, 1)
        _GUICtrlListView_AddSubItem($ListView1, 0, $aResult[$i][2], 2, 2)
        $i = $i + 1
WEnd

替换成数组的直接写入
_GUICtrlListView_AddArray($ListView1, $aResult)
发表于 2019-11-16 22:43:43 | 显示全部楼层
本帖最后由 floor6ggg 于 2019-11-16 23:26 编辑

应该是两个问题:
1.样式,注释后测试看具体哪里出错
2.GUICtrlListView_AddSubItem 使用上有个参数需要改动一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 16:40 , Processed in 0.214153 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表