PDA

View Full Version : سوال: سرچ از دیتاگرید



sanaz.ebrazeh
یک شنبه 19 مرداد 1393, 13:01 عصر
سلام
دوستام من یک برنامه سرچ نوشتم که کار میکنه تنها ایرادش اینه که اگه عبارت دوسیلابی باشه حتما دقیقا باید همون عبارت وارد بشه و گرنه اگر فقط قسمت دوم مانند فامیل وارد بشه سرچ صورت نمیگره و چیزی پیدا نمیکنه حتما باید ازول دقیقا باسم وفامیل وارد بشه
چیکارکنم تا اگه حتی یک قسمت از کلمه هم در داخل تک باکس نوشته شد پس از زدن دکمه سرچ اونو پیدا کنه؟


; ()SqlConnection cn = new SqlConnection
; () SqlCommand cm = new SqlCommand
; () SqlDataAdapter da = new SqlDataAdapter
DataTable dt = new DataTable
;" cn.ConnectionString ="Data Source=MOSLEH-6;Initial Catalog=test;Integrated Security=True
; " '%"+ cm.CommandText = "select * from view_1 where fname like '" + textBox2.Text
; cm.Connection = cn
; da.SelectCommand = cm
;( da.Fill(dt
;() textBox1.Text = dt.Rows[0][0].ToString
;() textBox2.Text = dt.Rows[0][1].ToString
;() comboBox1.Text = dt.Rows[0][2].ToString
; dataGridView1.DataSource = dt;

Davidd
یک شنبه 19 مرداد 1393, 13:09 عصر
سلام. اين كوئري كه شما نوشتي يعني اونايي كه با عبارت مورد نظر شروع بشن چون فقط آخرش % داره . اونايي كه شامل عبارت مورد نظر ميشن اول و آخر % بايد داشته باشه : ; " '%"+ cm.CommandText = "select * from view_1 where fname like '%" + textBox2.Text

sanaz.ebrazeh
یک شنبه 19 مرداد 1393, 13:24 عصر
یعنی اگه درصد رو بردارم درست میشه؟
باشه ممنون امتحان میکنم و نتیجه رو میگم

Davidd
یک شنبه 19 مرداد 1393, 13:32 عصر
یعنی اگه درصد رو بردارم درست میشه؟
باشه ممنون امتحان میکنم و نتیجه رو میگم
نه! يعني يه درصد هم اولش ميخواد دوتا درصد. كد كه گذاشتم. درصد مشابه ستاره (*) توي جستجو است. علامت درصد يعني هر زيررشته اي. %+textBox2.Text+% يعني رشته هايي كه اولش هر چي ميتونه باشه (حتي زير رشته خالي) آخرش هم هر زيررشته اي ميتونه باشه ولي وسطش حتما بايد شامل textBox2.Text باشه. يعني تمام رشته هاي شامل textBox2.Text

sanaz.ebrazeh
یک شنبه 19 مرداد 1393, 13:36 عصر
ببخشید من امتحان کردم هم یبار درصد رو برداشتم هم یبار به دو طرف اضافه کردم و هربار از کد
;( da.Fill(dt

ایراد گرفت و خطا داد
حالا باید چیکار کنم

Davidd
یک شنبه 19 مرداد 1393, 13:45 عصر
يه جايي توي " و ' اشتباه نوشتين. اينو دقيقا كپي كنيد
"select * from view_1 where fname like '%"+textBox2.Text+"%'";

sanaz.ebrazeh
یک شنبه 19 مرداد 1393, 13:49 عصر
:ناراحت: شرمنده کپی پیست کردم نشد باز از همون خط ایراد گرفت
الان یک هفته س دنبال راه چارم ولی درست کار نمیکنه

aminmousavi
یک شنبه 19 مرداد 1393, 14:47 عصر
سلام دوست عزیز ، کدی که
deldadeh108 (http://barnamenevis.org/member.php?313434-deldadeh108)
عزیز زحمت کشیدن در پست 6 کاملا درست هست . وقتی اول رشته % میزاری از ;( da.Fill(dt اشکال میگیره? ! ، میخوای کد زیر رو امتحان کن شاید درست شد :



DataSet ds = new DataSet();
SqlConnection Connection = new SqlConnection(@"Data Source=MOSLEH-6;Initial Catalog=test;Integrated Security=True");
SqlDataAdapter DA = new SqlDataAdapter();
DA.SelectCommand = new SqlCommand();
DA.SelectCommand.Connection = Connection;
DA.SelectCommand.CommandText = "SELECT * FROM view_1 WHERE fname LIKE '%"+textBox2.Text+"%'";
DA.Fill(ds, "view_1");


if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
textBox1.Text = ds.Tables[0].Rows[0][0].ToString();
textBox2.Text = ds.Tables[0].Rows[0][1].ToString();
comboBox1.Text = ds.Tables[0].Rows[0][2].ToString();
}
dataGridView1.DataSource = ds.Tables[0];


جای کل تیکه کدتون بزارین

sanaz.ebrazeh
یک شنبه 19 مرداد 1393, 15:06 عصر
خیلی خیلی ممنون :تشویق: مرسی

silver189
دوشنبه 20 مرداد 1393, 09:17 صبح
شما اگه یکبار دیتاگریدویو رو بایند کرده باشید می تونید از کد زیر استفاده کنید



try
{
((DataTable)dataGridView1.DataSource).DefaultView. RowFilter = string.Format("fname like '%{0}%' ", textBox2.Text.Trim().Replace("'", "''"));
}
catch (Exception) { }