Я использую Winforms для моего приложения и SQL Server в качестве базы данных.
Я хочу, чтобы как только любой текст набирался в текстовом поле, немедленные результаты извлекались / искались из таблиц базы данных SQL SERVER для этого предоставленного текста.
Для этого я далследующий запрос:
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;
}
}
Но, так как это каждый раз выбирает данные из базы данных, это занимает больше времени, но я хочу более быстрый путь.поэтому я должен использовать наборы данных для этой цели, так как наборы данных используются для автономной среды.
ИЛИ
Сначала я извлечу всю таблицу ITEM из базы данных в GridView и покажу ее при открытии формы.
теперь, когда текст вводится в текстовое поле, он не будет извлекать данные из базы данных sql, а будет выполнять поиск в GridView, так что это будет быстрее?
в какую сторонуэффективен?
В таблице предметов 3,4 миллиона записей.