作者KenZ ()
看板C_Sharp
標題Re: [問題] 一個自動完成的問題
時間Tue May 19 00:06:38 2009
※ 引述《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