PDA

View Full Version : آموزش: چگونگی انجام جستجوی پیشرفته



vhossein
جمعه 09 بهمن 1388, 15:55 عصر
سلام .من می خوام جستجوی داشته باشم که مانند ویستا باشه یعنی اگه کاربر مثلا حرف
"و" را وارد کرد کلیه رکوردهای جدول که حرف اول آنها با "و" شروع می شود نمایش داده شود به همین ترتیب تا آخر.لطفا راهنمایی کنید

hamidreza20
جمعه 09 بهمن 1388, 17:51 عصر
سلام دوست عزیز
برای اینکار باید از رویداد textchenged تکست باکس استفاده کنید.
به این شکل که یه تابع بنویسید که توی اون سلکت کنه تو دیتا بیس و از عملگر LIKE در select استفاده کنی فقط همین. اگه خواستی بگو برات کدش رو بزارم.

التماس دعا...

علیرضا حسن زاده
جمعه 09 بهمن 1388, 18:32 عصر
توی رویداد بنویسین:
Adodc1.Recordsource="Select * From Db Where Field Lik %" & text1.text & "%"
Adodc1.Refresh
Db= نام جدول پایگاه داده
Field= نام فیلدی کی می خوای روش جستجو انجام بدی

vhossein
جمعه 09 بهمن 1388, 19:43 عصر
adodc1.recordsource چیه؟فکر کنم & باید + باشه چون اینطوری ارور می ده؟یه کم واضح تر نمی گید

hamidreza20
جمعه 09 بهمن 1388, 20:26 عصر
اگه میشه کدش را بذارید ممنون می شم.

سلام دوست خوب . من تو یه برنامه استفاده کرده بودم فقط اینکه برای اتصال به بانک یه کلاس نوشتم و از اون استفاده کردم اول کد تابع رو میزارم و بعد استفاده از اون در رویداد تکست چنج و بعد کلاسی رو که نوشتم. هر جور خواستی استفاده کن.


private void datagrid_show(string command)
{
DataAccessAdapter adapter = new DataAccessAdapter();
adapter.sqlcommand.CommandText = command;
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataRow dr = null;
ds.Tables.Add(dt);

dt.Columns.Add("ردیف");
dt.Columns.Add("عنوان دوره");
dt.Columns.Add("گروه");
dt.Columns.Add("استاد");
dt.Columns.Add("ظرفیت");
dt.Columns.Add("روز تشکیل");
dt.Columns.Add("ساعت تشکیل");
dt.Columns.Add("مبلغ(ریال)");
dt.Columns.Add("تاریخ شروع");
dt.Columns.Add("تاریخ پایان");

adapter.openconnection();
adapter.sqldatareader = adapter.sqlcommand.ExecuteReader();
int rows_num = 1;

while (adapter.sqldatareader.Read())
{
dr = ds.Tables[0].NewRow();

dr[0] = rows_num;//ردیف

dr[1] = adapter.sqldatareader.GetString(0).Trim();//عنوان دوره

dr[2] = adapter.sqldatareader.GetString(1).Trim();//گروه

dr[3] = adapter.sqldatareader.GetString(2).Trim();//استاد

dr[4] = adapter.sqldatareader.GetInt32(3);//ظرفیت

dr[5] = adapter.sqldatareader.GetString(4).Trim();//روز تشکیل

dr[6] = adapter.sqldatareader.GetString(5).Trim();//ساعت تشکیل

dr[7] = adapter.sqldatareader.GetString(6).Trim();//مبلغ

dr[8] = adapter.sqldatareader.GetString(7).Trim();//تاریخ شروع

dr[9] = adapter.sqldatareader.GetString(8).Trim();//تاریخ پایان

dt.Rows.Add(dr);
rows_num++;
}



adapter.sqldatareader.Close();


dataGridView1.DataSource = ds.Tables[0];

adapter.closeconnection();
}

نحوه استفاده :


datagrid_show("SELECT Title,groh,ostad,tedad,day,time,mablagh,date_start ,date_end FROM doreha WHERE Title like'%" + txt_box_dore.Text + "%'");

کلاس :


using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace student
{
public class DataAccessAdapter
{
#region feilds
public static string strconnection = "Data Source=.;Initial Catalog=student;Integrated Security=True";
public SqlConnection sqlconnection;
public SqlDataAdapter sqldataadapter;
public SqlDataReader sqldatareader;
public SqlCommand sqlcommand;

#endregion feilds

#region constructor
public DataAccessAdapter()
{
this.sqlconnection = new SqlConnection(strconnection);
this.sqlcommand = new SqlCommand();
this.sqldataadapter = new SqlDataAdapter();
this.sqlcommand.Connection = sqlconnection;
this.sqldataadapter.SelectCommand = sqlcommand;
this.sqlcommand.CommandType = CommandType.Text;


}

#endregion constructor

#region public methods
public void openconnection()
{
if (sqlconnection == null)
{
sqlconnection = new SqlConnection(strconnection);
sqlcommand.Connection = sqlconnection;

}
if (sqlconnection.State == ConnectionState.Closed)
{
sqlconnection.Open();
}
}

public void closeconnection()
{
if (sqlconnection.State != ConnectionState.Closed)
{
sqlconnection.Close();
}
}
#endregion public methods
}
}


فقط نام بانکت رو روبروی catalog قرار بده و namespace رو درست کن. یه کلاس به برنامت اضافه کن و اینا رو توش بنویس.
التماس دعا...