PDA

View Full Version : مشكل با آپديت نشدن گريد ويو



myazdani
پنج شنبه 23 تیر 1390, 12:36 عصر
سلام

من با گريد ويو مشكل دارم مشكلم هم تكراري هست

مشكلم اينه كه يه سري تكست باكس دارم اومدم داده هاي اونا رو با اس كيو ال command ريختم تو جدول حالا مي خوام ديتا گريد ويو پايين صفحه بياد ركورد ثبت شده فعلي رو نمايش بده

تو صفحه مربوطه يه ديتا سورس گذاشتم و تو اون ديتا سورس به جدولي متصل شدم كه الان دارم توش داده مي ريزم و از طريق پنجره هوشمند ديتا گريد ويو. ديتا سورس گريد ويو رو قرار دادم همين ديتا سورسي كه عرض كردم
بعد اومدم تو برنامه ركورد رو از طريق كامند و executenonquery اضافه كردم حالا موندم چه جوري ديتا گريد ويو رو رفرش كنم تا اين ركورد جديد رو هم نمايش بده

ممكنه اساسا روش اتصال درست نباشه يعني نبايد از طريق ديتا سورس به ديتا گريد متصل بشم. اگه اينطوره روش درست رو دوستان لطف كنن بگن.

دليل اينكه روش ديتا سورس استفاده كردم اينه كه يه فيلد اتو نامبر دارم كه بعد از درج ركورد جديد مياد به ركورد جديد تعلق مي گيره اگه از ديتا سورس استفاده نكنم نمي دونم چه كاري بايد انجام بدم تا اين فيلد اتونامبر رو هم تو ديتا گريد نشون بده چون كامند فعلي من نمي تونه شامل اين فيلد باشه

دوستان من ازصبح با اين موضوع درگيرم و كل فروم رو با موضوع ديتا گريد ويو سرچ كردم از نظرات اساتيد استفاده كردم ولي مشكلم حل نشدچون سورس كد اغلب نذاشته بودن و مثلا گفته بودن دوباره به بانك متصل بشيد و.... و من متوجه نشدم

دوستاني كه مي خوان كمك كنن اگر لطف كنن دو خط كد برا حل اين معضل بنويسن ممنون ميشم

از اينكه حوصله كرديد اين تاپيك طولاني رو خونديد ممنونم

بي صبرانه منتظر جواب دوستان و اساتيد هستم

ahmad-65
پنج شنبه 23 تیر 1390, 16:47 عصر
به نظر من يه راه حلش اينه كه اگه داده ها به درستي در پايگاه درج نشدند كه هيچي.
ولي اگه داده ها به درستي در پايگاه درج شدند، اونوقت ميتوني گريد پايين رو با اطلاعات داخل تكس باكس هات پر كني. ديگه نيازي نيست از پايگاه بخوني. تازه سرعت كار هم خيلي بيشتر ميشه.

myazdani
پنج شنبه 23 تیر 1390, 17:24 عصر
ضمن تشكر از ahmad-65 راه حلشو كشف كردم
ستونهاي گريد ويو رو به صورت دستي تعيين كردم و هيچ ديتا سورسي تو زمان طراحي نذاشتم براش
وقتي كه ركورد با موفقيت به بانك اضافه شد اومدم آخرين ركورد درج شده در جدول را بازيابي كردم و داخل گريد ويو كردم با اين كد

Cmd = "SELECT TOP 1 * FROM Users ORDER BY ID DESC";
SqlDataAdapter s = new SqlDataAdapter(Cmd,con);
SqlCommandBuilder c = new SqlCommandBuilder(s);
DataTable dt = new DataTable();
s.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
dataGridView1.DataSource=bs;

con را قبلا مقدار دهي كردم و connection مربوطه را باز كردم و اين كد رو دقيقا بعد از كد درج در پايگاه داده نوشتم