Lentitud al presionar el cuarto caracter en textbox en el metodo textchanged c#

Roberto Carlos Espinosa 25 Reputation points
2023-02-04T13:54:01.23+00:00

Tengo una aplicación en donde estoy realizando una búsqueda de paciente con su historial clínico en base a su apellido y nombre, el código es el que adjunto a continuación el cual es 100% funcional ya que cumple su labor de búsqueda pero en determinado momento del día se suscita que al digitar el 4 carácter se torna lento y posteriormente aparece después de esa pequeña pausa por decirlo y continua normalmente, cabe añadir que al momento de realizar la carga de mis datos en el método load se cargan aproximadamente 3000 registros, esto también intervendría al momento de realizar la búsqueda?.

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace DientesSanos.dao
{
    internal class Buscar_Paciente_Apellido_Historial_Clinico
    {
        public string HISCLI_COD { get; set; }
        public string HISCLI_COD_ODONT { get; set; }
        public string NOMODONT { get; set; }
        public string NOMPAC { get; set; }
        public string HISCLI_COD_PAC { get; set; }
        public string HISCLI_MOT_CON { get; set; }
        public static List<Buscar_Paciente_Apellido_Historial_Clinico> Busqueda_Paciente_Apellido(String Nom_Pac)
        {
            List<Buscar_Paciente_Apellido_Historial_Clinico> listHc = new List<Buscar_Paciente_Apellido_Historial_Clinico>();
            DataTable dt = new DataTable();
            SqlCommand sql;
            SqlDataAdapter sqlDataAdapter1;
            String connstring = ConfigurationManager.ConnectionStrings["Trabajo"].ToString();
            using (SqlConnection conn = new SqlConnection(connstring))
            {
                conn.Open();
                sql = new SqlCommand("Buscar_Paciente_Apellido_Historial_Clinico", conn);
                Console.WriteLine(sql);
                if (conn != null)
                {
                    sqlDataAdapter1 = new SqlDataAdapter();
                    sql.CommandType = CommandType.StoredProcedure;
                    sql.Parameters.Add(new SqlParameter("@NOMPACHISCLI", Nom_Pac));
                    sqlDataAdapter1.SelectCommand = sql;
                    sqlDataAdapter1.Fill(dt);
                }
                foreach (DataRow r in dt.Rows)
                {
                    Buscar_Paciente_Apellido_Historial_Clinico dsr = new Buscar_Paciente_Apellido_Historial_Clinico
                    {
                        HISCLI_COD = r["HISCLI_COD"].ToString(),
                        HISCLI_COD_ODONT = r["HISCLI_COD_ODONT"].ToString(),
                        NOMODONT = r["NOMODONT"].ToString(),
                        HISCLI_COD_PAC = r["HISCLI_COD_PAC"].ToString(),
                        NOMPAC = r["NOMPAC"].ToString(),
                        HISCLI_MOT_CON = r["HISCLI_MOT_CON"].ToString()
                    };
                    listHc.Add(dsr);
                }
                return listHc;
            }
        }
    }
}
           

De antemano agradezco su guía o ayuda para solventar este pequeño inconveniente.

Not Monitored
Not Monitored
Tag not monitored by Microsoft.
37,798 questions
{count} votes