PDA

View Full Version : سوال: جستجو بر اساس حرف اول



asemann
یک شنبه 06 دی 1388, 02:15 صبح
من میخوام یه textbox داشته باشم با این خاصیت که وقتی حرف اول اسمی رو وارد میکنم همه اسمهای تو جدول که با اون حرف شروع میشنو نشون بده و بشه از این اسامی که نشون داده شده یکی رو انتخاب کرد.و این خاصیت برای کاراکترهای بیشتر هم وجود داشته باشه.لطفا بهم بگین چه جوری میشه این کارو انجام داد

sia_2007
یک شنبه 06 دی 1388, 04:09 صبح
باید کل ردیفهای اون فیلد رو به AutoComplete source اظافه کنید.
خودش خودکار درست میشود.
اما اگه تعداد رکوردهاتون خیلی خیلی زیاده باید از رویداد Text Change استفاده کنید.
مگر این که استید نظر دیگری داشته باشند.

مهدی رحیم زاده
یک شنبه 06 دی 1388, 06:58 صبح
میتونید این کار رو با استفاده از یک Query ساده SQL که عمل خوندن اطلاعات رو توی رویداد Text Change انجام میده ، انجام بدید.
موفق باشید

shahab_ss
یک شنبه 06 دی 1388, 08:30 صبح
به نظر من ، شما یک List از همه رکورد ها داشته باشید. بعد در رویداد Text Changed اون List رو فیلتر کنید و به دیتا سورس گرید بدید.
اینجوری شاید تعداد زیادی رکورد رو بصورت یکجا در حافظه داشته باشید ، اما در عوض فقط هزینه اجرای یک کوئری را خواهید داشت.

در نهایت این بستگی به محیط عملیاتی شما داره که کدوم روش رو انتخاب میکنید. باید ببینید که محدودیت در حافظه دارید و یا ایجاد Connection و اجرای Query.
در صورتی که هیچیک از اینها وجود نداشته باشه، روشی که گفتم به نظر من بهتره.

slashslash2009
یک شنبه 06 دی 1388, 16:09 عصر
شما میتونید این کارو در یک دیتا گرید ویو انجام بدین به این صورت کد زیر را در رویداد Text change تکست باکستون بنویسید :

connect consql2 = new connect();
DataTable dt2 = new DataTable();
dt2 = consql2.MySelect("Select * from table1 where name like '%" + textbox1.Text + "%'");
if (dt2.Rows.Count == 0)
dataGridView1.Visible = false;
else
dataGridView1.DataSource = dt2;و هر وقت که روی هر اسمی که در گرید ویو وجود داره کلیک کنید مثلا اونو در یک تکست باکس نشون بده اید در رویداد cell click گرید ویوتون این کدو بنویسید :

textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();

bpzone
یک شنبه 06 دی 1388, 18:43 عصر
با سلام دوست عزیز
کد زیر رو توی رویداد Text Change مربوط به Textbox بنویس



_SqlCommand = "SELECT * FROM T1 WHERE Family LIKE '" + txt_Search.Text + "%' ";

hakelberfin
دوشنبه 07 دی 1388, 00:42 صبح
با سلام خدمت بزرگواران
روش های بالا رو میتونیم به دو قسمت تقسیم کنیم
1.اسستفاده از خصوصیت AutoComplete مربوط به TextBox
2.Query های SQL
همونطوری که دوستمون گفتن اگه تعداد رکوردهاتون کمتر از 10000 باشه روش اول خیلی مطمئن تر و سریعتر از روش دومه