我写的从数据库里查找需要查询的字符串代码,问题出现在哪里,请指教
本帖最后由 qsy666888 于 2014-8-3 23:35 编辑我写的从数据库里查找需要查询的字符串代码,问题出现在哪里,请大大们指教
_SQLite_QuerySingleRow(-1, "SELECT * FROM "& $tblname & "WHERE 账号"& StringInStr(&"账号"&,$SS1) ";", $aRow1) 回复 1# qsy666888
"WHERE 账号" 這個怪怪的是不是應該是 "WHERE 账号="或者< 或者 > 等判斷式 才對吧 回复 2# kk_lee69
是的,可能我表达写错了,我是想输入关键字在数据库里账号列里查找含有关键字的行 楼主这几天发帖不少,可惜很多时候让人不知所云!
相关SQL语法:
"SELECT * FROM Your_Table WHERE column LIKE 'KEYWORD%'
用百分比符号 % 代替一个或多个字符, 根据需要可放于字符串中任一位置:
%KEYWORD% %KEYWORD KEY%D 本帖最后由 qsy666888 于 2014-8-3 21:00 编辑
回复 4# user3000
_SQLite_QuerySingleRow(-1, "SELECT * FROM "& $tblname & "WHERE 账号"& 'LIKE'& $SS1 &"%;", $aRow1)
$Temp1 = $aRow1
If $Temp1 = "" Then
MsgBox(262208, "查找结果...", "数据库中 [" & $SS1 & "] 的相关信息不存在!")
Else
Xianshi()
我把你的代码换进去后,闪退现象 回复 5# qsy666888
_SQLite_QuerySingleRow(-1, "SELECT * FROM "& $tblname & "WHERE 帳號 like '%"&$SS1&"%'",$aRow1) 回复 5# qsy666888
你的代码有多处错误.
"表名称" 与 "WHERE", "账号" 与 "LIKE"之间都没有空格!
还有关键字应该用单引号括起来.
_SQLite_QuerySingleRow(-1, "SELECT * FROM " & $tblname & " WHERE 账号 LIKE '" & $SS1 & "%';", $aRow1)
我4楼的回复, 第三行末尾少打了一个双引号!(或者说,该句的前头多打了一个双引号!) 回复 7# user3000
首先感谢kk_lee69 和user3000两位大侠的热心帮助,在功能上还是没有达到,必须输入完整的需要查询的文本或数字才能找到需要查询的数据,
比如:在数据库里账号列有一行是1104891307,而我们由于时间长久等原因记不住全部数字,所以只要我们输入110或者307等关键字,点击查询就能够把带有110或者307的行显示在ListView表格里,两位大侠帮我修改的,只能输入完整的字符串即1104891307,才能查到数据库有此行数据。 回复 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 & @TAB & $aRow & @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 回复 9# user3000
数据库我上传上来,大侠你试试,我这边
没有显示出来 回复 10# qsy666888
其實 我們回答的絕對不會錯
問題就出在SQLlite的 SQL 語言 語法的版本跟
標準的SQL 語言 不一樣
我們的 回答都是 針對 SQL 語法
所以你要解決的問題 應該朝著 兩種語言 對於 LIKE 的用法??萬用字元 等等的 方面去著手 回复 10# qsy666888
請附上妳的程式碼 回复 12# kk_lee69
源码在9楼 回复 13# qsy666888
no such column: 分數
表示 沒有叫做 分數的 欄位名稱請問 分數那一欄 的欄名 為何?? 回复 13# qsy666888
老大 你的資料庫 也是拿別人的來改吧 !!
恐怕是
把九樓的 第 36 行其中的 分數改為 語文理論上 應該 可以
另外 再給個建議欄位名稱 請用英文
页:
[1]
2