如何使用Linq从数据库中获取数据到Gaia Auto Completer?

时间:2011-11-21 07:34:20

标签: c# asp.net linq activerecord

我是linq的新手。我正在使用Gaia ajax Auto Completer。我想显示来自数据库表的搜索项。我想用linq / Active Records来做。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要使用网络服务才能使用自动完成功能填充文本字段。 试试这个..

    using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Web.Script.Services;



namespace YourProject
{
    /// <summary>
    /// Summary description for WebService
    /// </summary>
    // [ScriptService]
    //[System.Web.Script.Services.ScriptService()]
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class WebService : System.Web.Services.WebService
    {

        protected void Page_Load(object sender, EventArgs e)    
        {

        }
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        public string[] GetCompletionList(string prefixText)
        {

            string sql = "Select productname from F_Product Where productname like @prefixText ";
            SqlDataAdapter da = new SqlDataAdapter(sql, System.Configuration.ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString);
            da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%";
            DataTable dt = new DataTable();
            da.Fill(dt);
            string[] items = new string[dt.Rows.Count];
            int i = 0;
            foreach (DataRow dr in dt.Rows)
            {
                items.SetValue(dr["productname"].ToString(), i);
                i++;
            }
            return items;
        }
 }
}

如果您发现它有用,请将其标记为您的答案,否则请告诉我......我一定会帮助您。