View Full Version : سوال: جستجو در يك يا چند جدول بانك اطلاعاتي
ahmadhasani
شنبه 11 شهریور 1391, 18:21 عصر
سلام. من هرچي گشتم ، به نتيجهاي نرسيدم.
من دوتا جدول دارم به نامهاي article و news كه اين جداول ، هركدوم چندتا ستون دارن.
حالا ميخوام يه صفحه به نام جستجو داشته باشم متشكل از يك تكستباكس و يك باتم كه با وارد كردن يك كلمه ، همه فيلدهاي اين دوتا جدول جستجو بشه و نتيجه هم توي يه ريپيتر ، گريدويو ، ليست ويو يا هرچيز ديگهاي نمايش داده بشه.
حالا اشكالي هم نداره اگه فقط يه جدول هم بگرده.
فقط خيلي لازم دارم اساسي!
meisam12
شنبه 11 شهریور 1391, 22:07 عصر
سلام
می تونی از سورس کد زیر استفاده کنی
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
SqlConnection conn = new SqlConnection(constring);
DataTable dt = new DataTable("emed_province");
using (conn)
{
conn.Open();
SqlCommand comm = new SqlCommand("SELECT * FROM emed_province ORDER BY PROVINCE_NAME ASC", conn);
SqlDataAdapter adptr = new SqlDataAdapter(comm);
adptr.Fill(dt);
}
ddlProvince.DataSource = dt;
ddlProvince.DataTextField = "PROVINCE_NAME";
ddlProvince.DataValueField = "PROVINCE_CODE";
ddlProvince.DataBind();
}
}
protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
{
string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
SqlConnection conn = new SqlConnection(constring);
DataTable dt = new DataTable("emed_province");
using (conn)
{
conn.Open();
SqlCommand comm = new SqlCommand("SELECT * FROM emed_city WHERE PROVINCE_CODE =@pcode", conn);
comm.Parameters.AddWithValue("@pcode", ddlProvince.SelectedValue);
SqlDataAdapter adptr = new SqlDataAdapter(comm);
adptr.Fill(dt);
SqlParameter param = new SqlParameter();
param.ParameterName = "@pcode";
param.Value = ddlProvince;
comm.Parameters.Add(param);
}
ddlCity.DataSource = dt;
ddlCity.DataTextField = "CITY_NAME";
ddlCity.DataValueField = "CITY_CODE";
ddlCity.DataBind();
}
private void BindGridView(string field)
{
DataTable dt = new DataTable();
string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
SqlConnection conn = new SqlConnection(constring);
try
{
conn.Open();
SqlCommand comm = new SqlCommand("SELECT * FROM emed_accredited_providers WHERE DOCTOR_CODE =@pcode", conn);
comm.Parameters.AddWithValue("@pcode", ddlProvince.SelectedValue);
SqlDataAdapter adptr = new SqlDataAdapter(comm);
adptr.Fill(dt);
SqlParameter param = new SqlParameter();
param.ParameterName = "@pcode";
param.Value = ddlProvince;
comm.Parameters.Add(param);
if (dt.Rows.Count > 0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
else
{
}
// NO RECORDS FOUND
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Fetch Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGridView(txtName.Text.Trim());
}
}
ahmadhasani
یک شنبه 12 شهریور 1391, 17:29 عصر
ممنون. فقط ميشه يكم توضيح بدي؟
download69
دوشنبه 13 شهریور 1391, 01:02 صبح
توی صفحه سرچت میتونی از یک دیتا لیست یا یک گرید استفاده کنی که SqlDataSource اش خصوصیت Select اش رو مثلا به روش زیر تنظیم کنی :
Select * from table where subject LIKE '%' + @p + '%' order by [id] desc
شرح دستور Select :گیج: :
این دستور فیلد Subject جدول رو میگرده و فیلدی که یک شباهتی با پارامتر p داشته باشه رو نشون میده
این قسمت order by [id] desc هم برای Sort کردن گریدمون بر اساس آخرین مطلب به اولین مطالب است
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.