viernes, 19 de junio de 2009

Autocompletar en un texbox.net Visual Studio 2008 mas sql server express

Para empezar, es necesario contar con el fremwork 3.5.



:)



Ahora crea una clase de tipo WebService.asmx <--- Este ultimo es el nombre del archivo tu puedes ponerle otro

luego introduce este código:


using System;
using System.Collections.Generic;
using System.Web.Services;
using System.Data;
//Para utilizar la base de datos sql
using System.Data.SqlClient;
//Este es necesario ingresar para utilizar en asp.net
[System.Web.Script.Services.ScriptService]
//-----------------------------------------
public class AutoComplete : WebService
{
public AutoComplete()
{
}
//Igual este es necesario
[WebMethod]
//------------------------
public string[] GetCompletionList(string prefixText, int count)
{
if (count == 0)
{
count = 10;
}
if (prefixText.Equals("xyz"))
{
return new string[0];
}
//Hace una lectura de los datos con la primera letra que se ingrese
//Se hace una conexion desde una clase que se determina
Conexion Clase_conector = new Conexion();
//------------------------------------------------
/*Ahora se almacena dentro de una variable de tipo string un comando select*/
string sql = "Select * from TipoUsuario Where Usuarios like @prefixText";
// "@prefixText" esta es la variable del metodo que recibe utilizado para sqlserver
/* se lee los datos que extrae junto con laco nexion*/
SqlDataAdapter da = new SqlDataAdapter(sql,Clase_conector.conectar_base_datos());
/* sobre carga el sqladataadapter junto la variable dellenguaje sql y el tipo junto conla variable que recibe el el metodo*/
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText+ "%";
/*Se pone en una tabla los datos obtenidos para leerlas*/
DataTable dt = new DataTable();
/*en el adaptaadapter se carga las filas del datatable*/
da.Fill(dt);
/*de forma de un array se saca las columnas letra por letra*/
string[] items = new string[dt.Rows.Count];
int i = 0;
/*condicion que permite ver letra por letra*/
foreach (DataRow dr in dt.Rows)
{
/*envia el valor de la tabla que se lee uno por uno*/
items.SetValue(dr["Usuarios"].ToString(), i);
i++;
}
/*retorna el valor que se esta leyendo*/
return items;
}
}
Comentarios :)

No hay comentarios: