PDA

View Full Version : مشکل در کد جستجو در دیتابیس



saeedhushmand
شنبه 30 اردیبهشت 1391, 19:15 عصر
دوستان با سلام من از این کد وقتی یک اطلاعات جدیدی رو به دیتابیس اضافه می کنم برای اینکه datagridview همون موقعه اونو نشون بده استفاده می کنم ولی یک مشکلی داره اونم اینه که هنگام رفلش شدن بر می گرده و سطر اول به حالت انتخاب در می یاره اما من می خوام هر سطری که در حال انتخاب هست پس از رفلش شدن همون سطر در حالت انتخاب باقی بمونه

SqlDataAdapter myDA;
DataSet myDS;
StrConn = @"Data Source=.;Initial Catalog=accounting;Integrated Security=True";
StrQury = "Select Code,Group_Account From Group_Account where Group_Account like N'%" + textBox10.Text + "%' ORDER BY Group_Account";
myDA = new SqlDataAdapter(StrQury, StrConn);
myDS = new DataSet();
myDA.Fill(myDS, "Group_Account");
this.dataGridView1.DataSource = myDS;
this.dataGridView1.DataMember = "Group_Account";
this.dataGridView1.AutoGenerateColumns = true;
this.dataGridView1.RightToLeft = RightToLeft.Yes;
this.dataGridView1.Refresh();
myDA.Dispose();
myDS.Dispose();

لطفا راهنمایی فرمایید

behzadkhatari
شنبه 30 اردیبهشت 1391, 20:09 عصر
شما باید قبل از ریفرش کردن شماره رکورد انتخاب شده رو نگه دارید و بعد از ریفرش دوباره اون رو انتخاب کنید
datagridview1.rows[number of row].selected=true;

saeedhushmand
شنبه 30 اردیبهشت 1391, 20:15 عصر
خوب شماره رکود ثابت که نیست...

behzadkhatari
شنبه 30 اردیبهشت 1391, 20:22 عصر
راه بهتر اینه که از BindingSource استفاده کنید. با استفاده از متد find رکورد انتخاب شده رو پیدا کنید در غیر اینصورت در روش قبلی باید براش یه الگرینمی پیاده کنید که ببینه چه تعداد رکورد حذف و اضافه شده اونطوری میتونید شماره رکورد رو پیدا کنید.

Mahmoud Zaad
شنبه 30 اردیبهشت 1391, 20:44 عصر
اگه فیلد Codeی که توی کوئری ات هست، یونیک هست می تونی از اون استفاده کنی. احتمالا این فیلد از نوع int هست. خب شما یه متغیر از نوع int به صورت سراسری تعریف کنید. بعد وقتی که یک رکورد رو می خواید حذف یا ویرایش کردید این متغیر رو مقدار دهی کنید. یعنی وقتی که روی ردیف مورد نظر کلیک می کنید این متغیر رو مقدار دهی کنید.