PDA

View Full Version : استفاده از رایو باتن در جستجو اطلاعات



mahdivita
سه شنبه 09 دی 1393, 01:56 صبح
سلامی مجدد
من میخوام توی قسمت جستجوی اطلاعات برنامم چندتا رایو باتن باشه که کاربر بر اساس اون رادیو باتنی که انتخاب میکنه بتونه جستجو کنه
مثلا فرض کنید سه تا رادیو باتن به نام های کد ، نمره ، رشته وجود داره و یک تکست باکس نیز هست بعد مثلا میام رادیو باتن نمره رو انتخاب میکنم و داخل تسکت باکس مینویسم 17 بعد اسم اونهایی که نمره 17 هست رو بیاره
چجوری میشه؟

MRasoul
سه شنبه 09 دی 1393, 09:27 صبح
اینا رو سرچ بزنی توی قسمت C# هست اما میتونی یه متغیر مثلا به اسم search_type تعریف کنی و وقتی مثلا کمبوی مربوط به نمره را انتخاب میکنی ، مقدار این متغیر برابر مثلا grade باشه، بعد برای جستجو شرط بذاری که
if(search_type=="grade")
{
مجموعه دستورات جستجو برا اساس نمره
}

mahdivita
سه شنبه 09 دی 1393, 13:45 عصر
من همین کار رو تو C# انجام دادم اما توی Wpf میخوام انجام بدم نمیشه

mahdivita
سه شنبه 09 دی 1393, 21:07 عصر
الان من کد زیر رو نوشتم که ارور میده

if (cod.IsChecked= checked)

MRasoul
چهارشنبه 10 دی 1393, 10:39 صبح
الان من کد زیر رو نوشتم که ارور میده

if (cod.IsChecked= checked)

مسلمه خطا میده،باید بنویسی
if(con.IsChecked==true)

omidparkour
چهارشنبه 10 دی 1393, 20:18 عصر
الان کد زیر رو نوشتم و بدون ارور هم هست اما وقتی توی تکست باکس چیزی مینویسم حاصل رو نشون نمیده

private void TextBox_TextChanged(object sender, TextChangedEventArgs e) {
if (cod.IsChecked == true)
{
SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = "data source=localhost;initial catalog=real-estate;integrated security=true";
SqlCommand objcom = new SqlCommand();
objcom.Connection = objcon;
objcom.Parameters.AddWithValue("@code", search.Text);
objcom.CommandText = "select * from tbl_home where code=@code";
objcon.Open();
SqlDataAdapter objda = new SqlDataAdapter(objcom);
DataTable dt = new DataTable("tbl_home");
objda.Fill(dt);
objcon.Close();
}


if (area.IsChecked == true)
{
SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = "data source=localhost;initial catalog=real-estate;integrated security=true";
SqlCommand objcom = new SqlCommand();
objcom.Connection = objcon;
objcom.Parameters.AddWithValue("@area", search.Text);
objcom.CommandText = "select * from tbl_home where area=@area";
objcon.Open();
SqlDataAdapter objda = new SqlDataAdapter(objcom);
DataTable dt = new DataTable("tbl_home");
objda.Fill(dt);
objcon.Close();


}

}

MRasoul
چهارشنبه 10 دی 1393, 22:54 عصر
الان کد زیر رو نوشتم و بدون ارور هم هست اما وقتی توی تکست باکس چیزی مینویسم حاصل رو نشون نمیده


[/CODE]

سلام
مثل اینکه شما یه تکس باکس داری به اسم search اما تابعت که مال تغییر متن هست اسمش چیز دیگس!آیا این تابع دقیقا به تکست باکس search نسبت داده شده؟
در ضمن دوتا کد زیر رو هم باهم جابجا کن
objcom.Parameters.AddWithValue("@area", search.Text); objcom.CommandText = "select * from tbl_home where area=@area";


در آخر شما اطلاعات رو میگیری و میریزی توی datatable اما datatable رو که جایی نریختی که نتیجشو ببینی

omidparkour
چهارشنبه 10 دی 1393, 23:29 عصر
الان کد رو به کد زیر تغییر دادم اما باز همونطور که در عکس مشاهده میکنید به رکورد های دیتاگریدویو یه چیزایی اضافه میشه اما داده اضافه نمیشه

if (cod.IsChecked == true) {
SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = "data source=localhost;initial catalog=real-estate;integrated security=true";
SqlCommand objcom = new SqlCommand();
objcom.Connection = objcon;
objcom.Parameters.AddWithValue("@code", search.Text);
objcom.CommandText = "select * from tbl_home where code=@code";
objcon.Open();
SqlDataAdapter objda = new SqlDataAdapter(objcom);
DataTable dt = new DataTable("tbl_home");
dgv.ItemsSource = dt.DefaultView;
objda.Fill(dt);
objcon.Close();
}


if (area.IsChecked == true)
{
SqlConnection objcon = new SqlConnection();
objcon.ConnectionString = "data source=localhost;initial catalog=real-estate;integrated security=true";
SqlCommand objcom = new SqlCommand();
objcom.Connection = objcon;
objcom.Parameters.AddWithValue("@area", search.Text);
objcom.CommandText = "select * from tbl_home where area=@area";
objcon.Open();
SqlDataAdapter objda = new SqlDataAdapter(objcom);
DataTable dt = new DataTable("tbl_home");
dgv.ItemsSource = dt.DefaultView;
objda.Fill(dt);
objcon.Close();


}
http://0up.ir/up10/guest/show.jpg

MRasoul
پنج شنبه 11 دی 1393, 01:54 صبح
دوتا کد ک گفتم جابجا کن رو جابجا کن
اول
objcom.CommandText = "select * from tbl_home where area=@area";
بعد
objcom.Parameters.AddWithValue("@area", search.Text);
نوع area و code توی جدول چیه؟
دیتاگرید هس یا دیتاگریدویو

omidparkour
پنج شنبه 11 دی 1393, 02:39 صبح
نوع جفتشون nvarchar هست
جابه جا هم که کردم کدها رو هیچ فرقی نکرد
دیتاگرید هست

MRasoul
پنج شنبه 11 دی 1393, 08:34 صبح
نوع جفتشون nvarchar هست
جابه جا هم که کردم کدها رو هیچ فرقی نکرد
دیتاگرید هست

یبار کد زیر رو حذف کن
objcom.Parameters.AddWithValue("@area", search.Text);



و اون یکی کد رو اینجور بنویس
objcom.CommandText = "select * from tbl_home where area=N'مقداری ک توی جدول باشه'";



و تست بکن
کدهای دیتاگریدت رو هم بذار ببینم
از همه مهمتر، کد زیر رو بعد از همه ی کدها در انتهای تابع بذار
dgv.ItemsSource = dt.DefaultView;
و قبل این کد هم کد زیر رو بذار ببینیم اصلا چیزی توی dt هست
MessageBox.Show(dt.Rows.Count.ToString());