J'utilise Winforms pour mon application & SQL Server en tant que base de données.récupération immédiate des données de la base de données sql à partir de winforms textbox
Je veux que dès qu'un texte est tapé dans une zone de texte, les résultats immédiats sont récupérés/recherchés à partir des tables de base de données SQL SERVER pour ce texte fourni.
Pour cela, je donne la requête suivante:
public partial class Form1 : Form
{
SqlConnection conn = new SqlConnection();
public Form1()
{
conn.ConnectionString = "Trusted_Connection=true";
conn.Open();
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataTable dt = null;
SqlCommand cmd = new SqlCommand ("SELECT * FROM items WHERE item_name LIKE'" + textBox1.Text + "%'", conn);
SqlDataReader reader = cmd.ExecuteReader();
dt = new DataTable();
dt.Load(reader);
dataGridView1.DataSource = dt;
}
}
Mais, comme cela va chercher des données à chaque fois de la base de données, donc il faut plus de temps, mais je veux une façon plus rapide. J'utiliserai donc DATASETS à cette fin, car les ensembles de données sont utilisés pour l'environnement déconnecté.
OU
Je vais d'abord aller chercher l'ensemble table d'éléments de la base de données à un GridView, affichage & lorsque le formulaire est ouvert. Maintenant, quand le texte est entré dans la zone de texte, alors il ne chercherait pas les données de la base de données sql, mais chercherait dans le GridView, serait-ce plus rapide?
de quelle manière serait efficace?
La table d'articles a 3,4 millions d'enregistrements.
@Remus Rusanu: dans l'événement de changement de zone de texte, je devrais l'écrire? – sqlchild
@Remus Rusanu: qu'est-ce qui est rapide? S'il vous plaît mentionner le code correct et complet – sqlchild
Ne faites pas ce que Remus suggère, il va effacer toute votre table. –