作者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)
1F:推 maxpeter2100:也不是结果不对 是没有反应 自动完成没反应 我试试.. 05/19 00:19
2F:推 maxpeter2100:不行 还是没反应 自动完成的功能 除了写WEB服务以外 05/19 00:22
3F:→ maxpeter2100:还有甚麽要写的吗?? 05/19 00:23
4F:→ maxpeter2100:HTML端的部分 会有影响吗? 感觉是我select的语法问题 05/19 00:24
5F:→ KenZ:你应该分开测试, 先测试SELECT没错, 再测试你的Function回传 05/19 11:50
6F:→ KenZ:值正确, 另外, AutoComplete只吃 WebService 05/19 11:52
7F:→ KenZ:你开 Debug 很快就可以找到到底是哪段有问题了 05/19 11:54
8F:推 tomex:或者不要用LIKE,直接=避免%的问题 05/19 14:19
9F:→ maxpeter2100:可是我开小红点 感觉根本没用阿.... 好像是没读到 05/19 15:28
10F:→ maxpeter2100:function 是因为我放在updatepanel里面的关系吗??? 05/19 15:28
11F:→ KenZ:跟UpdatePanel无关, 我用也是丢在UpdatePanel里 05/19 21:12
12F:→ KenZ:听你描述, 看起来根本没有呼叫到你的WebService 05/19 21:13
13F:→ KenZ:检查你AutoCompleteExtender 的 ServicePath有没有设错 05/19 21:13
14F:推 maxpeter2100:没错 Servicepath=~/StockBuy.asmx 跟网页同一目录 05/19 21:21
15F:→ maxpeter2100:我的TEXTBOX也是写在Updatepanel中... 可是小红点 05/19 21:28
16F:→ maxpeter2100:真的是不管怎麽放 都感觉没有用ㄟ..... 05/19 21:28
17F:→ maxpeter2100:然後ScriptManager住有没有注册感觉都没差 05/19 21:29
18F:→ maxpeter2100:对了 我是写在Master中的内页 不晓得有没有差... 05/19 21:30
19F:→ KenZ:Master没差, 我之前写也是放在Master里 05/19 23:20