看板 C_Sharp 關於我們 聯絡資訊
※ 引述《maxpeter2100 (釣)》之銘言: : ※ [本文轉錄自 Ajax 看板] : 作者: maxpeter2100 (釣) 看板: Ajax : 標題: [問題] 一個自動完成的問題 : 時間: Mon May 18 22:15:42 2009 : 我寫一個自動輸入完成的功能 : 用Web Method : 搭配ajaxtool的autocompleteextender : 我web service 寫法如下 恕刪 : namespace StockRiskManagement : { : /// <summary> : /// StockBuy 的摘要描述 : /// </summary> : [WebService(Namespace = "http://tempuri.org/")] : [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] : // 若要允許使用 ASP.NET AJAX 從指令碼呼叫此 Web 服務,請取消註解下一行。 : [System.Web.Script.Services.ScriptService] : public class StockBuy : System.Web.Services.WebService : { : public string[] GetNameGuggestion(string prefixText,int count) : { : //// 定義一個泛用集合物件 List 來儲存建議詞。 : List<string> suggestions = new List<string>(); : // 取得資料庫連線字串設定,來建立 SQL 連線物件。 : try : { : string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data : Source=StockRiskManagement/mdb/Database.mdb"; : OleDbConnection Con = new OleDbConnection(constr); //資料連結 : 物件 Con 的設定 : Con.Open(); //連結資料庫 : // 指派查詢陳述式。 : string select = "SELECT DISTINCT 股票名稱 FROM 公司資料 WHERE : 股票名稱 LIKE @prefixName "; //嚴重懷疑這行錯了 你應該程式跑起來沒有錯誤訊息, 可是得到的結果不對, 對吧? 你試一下 "SELECT DISTINCT 股票名稱 FROM 公司資料 WHERE 股票名稱 LIKE @prefixName +'%'"; 然後下面塞變數改成 cmd.Parameters.AddWithValue("@prefixName", prefixText); : OleDbCommand cmd = new OleDbCommand(select, Con); //設定命令物 : 件 : // 設定參數值。 : cmd.Parameters.AddWithValue("@prefixName", prefixText + "%"); : OleDbDataReader dr = cmd.ExecuteReader(); : int matchCount = 1; 恕刪 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.9.28 ※ 編輯: KenZ 來自: 218.173.9.28 (05/19 00:07)
maxpeter2100:也不是結果不對 是沒有反應 自動完成沒反應 我試試.. 05/19 00:19
maxpeter2100:不行 還是沒反應 自動完成的功能 除了寫WEB服務以外 05/19 00:22
maxpeter2100:還有甚麼要寫的嗎?? 05/19 00:23
maxpeter2100:HTML端的部分 會有影響嗎? 感覺是我select的語法問題 05/19 00:24
KenZ:你應該分開測試, 先測試SELECT沒錯, 再測試你的Function回傳 05/19 11:50
KenZ:值正確, 另外, AutoComplete只吃 WebService 05/19 11:52
KenZ:你開 Debug 很快就可以找到到底是哪段有問題了 05/19 11:54
tomex:或者不要用LIKE,直接=避免%的問題 05/19 14:19
maxpeter2100:可是我開小紅點 感覺根本沒用阿.... 好像是沒讀到 05/19 15:28
maxpeter2100:function 是因為我放在updatepanel裡面的關係嗎??? 05/19 15:28
KenZ:跟UpdatePanel無關, 我用也是丟在UpdatePanel裡 05/19 21:12
KenZ:聽你描述, 看起來根本沒有呼叫到你的WebService 05/19 21:13
KenZ:檢查你AutoCompleteExtender 的 ServicePath有沒有設錯 05/19 21:13
maxpeter2100:沒錯 Servicepath=~/StockBuy.asmx 跟網頁同一目錄 05/19 21:21
maxpeter2100:我的TEXTBOX也是寫在Updatepanel中... 可是小紅點 05/19 21:28
maxpeter2100:真的是不管怎麼放 都感覺沒有用ㄟ..... 05/19 21:28
maxpeter2100:然後ScriptManager住有沒有註冊感覺都沒差 05/19 21:29
maxpeter2100:對了 我是寫在Master中的內頁 不曉得有沒有差... 05/19 21:30
KenZ:Master沒差, 我之前寫也是放在Master裡 05/19 23:20