PDA

View Full Version : سوال: ارتباط تکس باکس با دیتاگریدویو



m.bibjan
شنبه 27 اسفند 1390, 18:41 عصر
سلام ببخشید شاید ماهیت این تاپیک تکراری باشه ولی توی هر تاپیکی که سرچ کردم و دیدم به صورت جزئی بحث شده بود و کامل نبود.
برای امکان جستجو در برنامه میخوام که
اولا جستجو که میکنم حاصل جستجو هم معمولا یه نفر میشه که نتیجه توی تکس باکس ها نمایش داده بشه.واون حاصل جستجو توی گریدویو هم با یک رنگ مشخص شده باشه.
ثانیا ارتباط باشه بین گریدویو و تکس باکس به این نحو که روی اسمی از اسامی توی دیتاگریدویو کلیک کنم اطلاعاتش به تکس باکس ریخته بشه و نمایش داده بشه.البته جستجو هم در دیتابیس SQL هستش.
بعد کدم هم توی txtsearch_TextChanged این هستش:SqlConnection Conn = new SqlConnection();
Conn.ConnectionString = @"server = (local) ; database=dbsql; integrated security = true";
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = Conn;

Cmd.CommandText = " select * from SQL WHERE idpublic like '% "+ txtidpublic.Text +" %' ";
Conn.Open();
SqlDataReader dr = Cmd.ExecuteReader();

if (dr.Read())
{
txtname.Text = (string)dr["name"];
txtfamily.Text = (string)dr["family"];
txtdadname.Text = (string)dr["dadname"];
txtidbasiji.Text = (string)dr["idbasiji"];
txtidpublic.Text = (string)dr["idpublic"];

}
چه تغییری باید بهش بدم؟اگه راهنمایی کنید ممنون میشم

m.bibjan
شنبه 27 اسفند 1390, 21:12 عصر
کسی نیست جواب ما رو بده؟

Sirwan Afifi
شنبه 27 اسفند 1390, 22:00 عصر
پیشنهاد :
شما بعد از اینکه داده هاتون رو از دیتابیس ریختید توی Gridview بیایید Gridview رو فیلتر کنید،
این کد شما بار زیادی رو روی دیتابیس داره یعنی با هر بار TextChange به دیتابیس متصل بشید و..... که به نظر من این روش مناسبی نیست.

اینم به قول خودتون ارتباط بین گریدویو و تکست باکس :

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
txtname.Text = dataGridView1[0, dataGridView1.CurrentRow.Index].Value.ToString();
txtfamily.Text = dataGridView1[1, dataGridView1.CurrentRow.Index].Value.ToString();
txtdadname.Text = dataGridView1[2, dataGridView1.CurrentRow.Index].Value.ToString();
txtidbasiji.Text = dataGridView1[3, dataGridView1.CurrentRow.Index].Value.ToString();
txtidpublic.Text = dataGridView1[4, dataGridView1.CurrentRow.Index].Value.ToString();
}

m.bibjan
شنبه 27 اسفند 1390, 22:17 عصر
ممنون فقط چرا این کدی که واسه جستجو گذاشتمش کار نمیکنه نتیجه ای رو نشون نمیده و خظا هم نمیگیره.

Sirwan Afifi
شنبه 27 اسفند 1390, 22:30 عصر
الان مشکلی نداره :

SqlConnection Conn = new SqlConnection();
Conn.ConnectionString = @"server = (local) ; database=dbsql; integrated security = true";
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = Conn;
Cmd.CommandText = " select * from sql WHERE idpublic like '%" + txtidpublic.Text + "%'";
Conn.Open();
SqlDataReader dr = Cmd.ExecuteReader();
if (dr.Read())
{
txtname.Text = (string)dr["name"];
txtfamily.Text = (string)dr["family"];
txtdadname.Text = (string)dr["dadname"];
txtidbasiji.Text = (string)dr["idbasiji"];
}
else
{
txtname.Text ="";
txtfamily.Text = "";
txtdadname.Text = "";
txtidbasiji.Text = "";
}