找回密码
 加入
搜索
查看: 15606|回复: 19

[AU3基础] 我写的从数据库里查找需要查询的字符串代码,问题出现在哪里,请指教

 火.. [复制链接]
发表于 2014-8-3 10:30:09 | 显示全部楼层 |阅读模式
本帖最后由 qsy666888 于 2014-8-3 23:35 编辑

我写的从数据库里查找需要查询的字符串代码,问题出现在哪里,请大大们指教

_SQLite_QuerySingleRow(-1, "SELECT * FROM "& $tblname & "WHERE 账号"& StringInStr(&"账号"&,$SS1) ";", $aRow1)
发表于 2014-8-3 14:32:23 | 显示全部楼层
回复 1# qsy666888


"WHERE 账号"   這個怪怪的  是不是應該是   "WHERE 账号="  或者  < 或者 > 等判斷式 才對吧
 楼主| 发表于 2014-8-3 16:23:28 | 显示全部楼层
回复 2# kk_lee69
   
是的,可能我表达写错了,我是想输入关键字在数据库里账号列里查找含有关键字的行
发表于 2014-8-3 17:05:50 | 显示全部楼层
楼主这几天发帖不少,可惜很多时候让人不知所云!

相关SQL语法:
"SELECT * FROM Your_Table WHERE column LIKE 'KEYWORD%'

用百分比符号 % 代替一个或多个字符, 根据需要可放于字符串中任一位置:
%KEYWORD%     %KEYWORD    KEY%D
 楼主| 发表于 2014-8-3 20:58:12 | 显示全部楼层
本帖最后由 qsy666888 于 2014-8-3 21:00 编辑

回复 4# user3000
_SQLite_QuerySingleRow(-1, "SELECT * FROM "& $tblname & "WHERE 账号"& 'LIKE'& $SS1 &"%;", $aRow1)
                $Temp1 = $aRow1[0]
                If $Temp1 = "" Then
                        MsgBox(262208, "查找结果...", "数据库中 [" & $SS1 & "] 的相关信息不存在!")                     
                Else       
                        Xianshi()


我把你的代码换进去后,闪退现象
发表于 2014-8-3 21:10:42 | 显示全部楼层
回复 5# qsy666888


    _SQLite_QuerySingleRow(-1, "SELECT * FROM "& $tblname & "WHERE 帳號 like '%"&$SS1&"%'",$aRow1)
发表于 2014-8-3 22:00:10 | 显示全部楼层
回复 5# qsy666888

你的代码有多处错误.
"表名称" 与 "WHERE", "账号" 与 "LIKE"之间都没有空格!
还有关键字应该用单引号括起来.
_SQLite_QuerySingleRow(-1, "SELECT * FROM " & $tblname & " WHERE 账号 LIKE '" & $SS1 & "%';", $aRow1)

我4楼的回复, 第三行末尾少打了一个双引号!(或者说,该句的前头多打了一个双引号!)
 楼主| 发表于 2014-8-3 22:47:52 | 显示全部楼层
回复 7# user3000


    首先感谢kk_lee69 和user3000两位大侠的热心帮助,在功能上还是没有达到,必须输入完整的需要查询的文本或数字才能找到需要查询的数据,
比如:在数据库里账号列有一行是1104891307,而我们由于时间长久等原因记不住全部数字,所以只要我们输入110或者307等关键字,点击查询就能够把带有110或者307的行显示在ListView表格里,两位大侠帮我修改的,只能输入完整的字符串即1104891307,才能查到数据库有此行数据。
发表于 2014-8-3 23:12:26 | 显示全部楼层
回复 8# qsy666888


    用你另一个帖子的数据库来做例子.
#Include <GuiListView.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
_SQLite_Startup ()
$SQLite_Data_Path = "SQLite.db"
$Tablekj = "kaojuan"
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("从数据库里获取姓名示例", 478, 412, 481, 210)
GUISetFont(11, 400, 0, "宋体")
Global $ListView1 = GUICtrlCreateListView("序号|姓名|语文", 8, 8, 458, 358)
KC_lvdraw()
Global $Button1 = GUICtrlCreateButton("查看分数", 293, 376, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Button1
              msgbox(0,"70多分者", _get_N(7, 1))
                          msgbox(0,"分数个位数是5者", _get_N(5, 0))        
        EndSwitch
WEnd

Func _get_N($iNum, $iCode = 1)
        Local $aRow, $hQuery, $sMsg = ''
        Local $sQuery
        If $iCode Then 
            $sQuery = "'" & $iNum & "%'"
        Else
                $sQuery = "'%" & $iNum & "'"
        EndIf
        _SQLite_Open ($SQLite_Data_Path)
        _SQLite_Query(-1, "SELECT * FROM kaojuan WHERE 分数 LIKE " & $sQuery & ";", $hQuery)
        While _SQLite_FetchData($hQuery, $aRow) = $sqlite_ok
                $sMsg &= $aRow[0] & @TAB & $aRow[1] & @CRLF
        WEnd
        Return $sMsg 
EndFunc        

Func KC_lvdraw() 
        _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
        Local $Irval, $Aresult, $Irows, $Icolumns
        $Irval = _SQLite_GetTable2d( _SQLite_Open ($SQLite_Data_Path), "select rowid,* from kaojuan;", $Aresult, $Irows, $Icolumns)
        _ArrayDelete($aresult, 0)
    _GUICtrlListView_AddArray($ListView1, $Aresult)
EndFunc
 楼主| 发表于 2014-8-3 23:38:11 | 显示全部楼层
回复 9# user3000

数据库我上传上来,大侠你试试,我这边
    没有显示出来

本帖子中包含更多资源

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

×
发表于 2014-8-3 23:51:47 | 显示全部楼层
回复 10# qsy666888

其實 我們回答的絕對不會錯
問題就出在  SQLlite  的 SQL 語言 語法的版本  跟
標準的SQL 語言 不一樣

我們的 回答都是 針對 SQL 語法

所以你要解決的問題 應該朝著 兩種語言 對於 LIKE 的用法??  萬用字元 等等的 方面去著手
发表于 2014-8-4 00:07:16 | 显示全部楼层
回复 10# qsy666888

請附上妳的程式碼
 楼主| 发表于 2014-8-4 00:12:42 | 显示全部楼层
回复 12# kk_lee69

源码在9楼
发表于 2014-8-4 01:02:11 | 显示全部楼层
回复 13# qsy666888

no such column: 分數

表示 沒有叫做 分數的 欄位名稱  請問 分數那一欄 的欄名 為何??
发表于 2014-8-4 01:18:17 | 显示全部楼层
回复 13# qsy666888

老大 你的資料庫 也是拿別人的來改吧 !!
恐怕是

把九樓的 第 36 行  其中的 分數  改為 語文  理論上 應該 可以

另外 再給個建議  欄位名稱 請用英文
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-14 09:06 , Processed in 0.084254 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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