PDA

View Full Version : به روز نشدن تغييرات در بانك اطلاعاتي



xvision
سه شنبه 21 مهر 1388, 12:56 عصر
حقيقتش نمي دونستم موضوع رو چي بنويسم كه گوياي مشكلم باشه !

مشكل من اينه كه در فرمي كه با سي شارپ طراحي كردم با فراخوان SP هاي مختلف اطلاعاتي رو در يك بانك اطلاعاتي sqlexpress كه توي خود برنامه اتچ شده تغيير ميدم يا اضافه ميكنم تا اينجاي كار هيچ مشكلي نيست
در بانك هم اطلاعات تغيير كردن ولي توي فرم هاي برنامه ام فقط در صورتي تغييرات اعمال ميشن و قابل مشاهده هستن كه برنامه ام رو يكبار ببندم و دوباره باز كنم !
متاسفانه چون برنامه اي كه نوشتم خيلي بزرگ و مفصل هست نمي تونم اونو اينجا بگذارم
اگر كسي از دوستان چيزي به ذهنش ميرسه كه مشكل حل بشه خوشحال ميشم راهنماييم كنه
متاسفانه براي تحويل كار زمان زيادي برام نمونده !!
با تشكر

Reza_Yarahmadi
سه شنبه 21 مهر 1388, 13:47 عصر
اگه کدهای برنامه رو بذارید بهتر میشه کمک کرد!
ممکنه مشکل به دلیل زیر باشه:
اطلاعاتی که شما وارد و یا تغییر میدید مستقیما روی بانک اعمال میشه در حالی که ابزارهای شما به یه DataTable بایند شدن و شما بعد از تغییر این DataTable رو بروز نمی کنید.
برای حلش هم چند کار میشه کرد.
یکی اینکه بعد از انجام عمل درج / ویرایش ، DataTable رو دوباره پر (Fill) کنید .
راه دیگه اینه که تغییرات رو روی DataTable اعمال کنید و از طریق DataTable تغییرات رو روی بانک اعمال کنید.
راه دیگه هم اینه که بعد از تغییرات توی بانک ، DataTable رو بصورت دستی ویرایش کنید.

xvision
یک شنبه 26 مهر 1388, 10:13 صبح
دوست عزيز
راهنمايي شما كاملا درست بود در حقيقت ابزارهاي من به تيبل هاي واقع در ديتا ست بايند هستن در حالي كه در هنگام تغييرات من تغييرات رو روي بانك انجام ميدم تا اينجا درست
مشكل اينه كه من ابزارهام رو به وسيله ويزارد متصل كردم و بنابراين ديتا ست و ... رو خودش ساخته مثلا تكست باكسي دارم كه به " sp_person_SelectRowBindingSource " بايند شده و تيبلي كه برام ايجاد شده " sp_person_SelectRowTableAdapter " هست حالا من اينها رو چطور با بانك اصلي هماهنگ كنم ؟!!

توي اين مدت با راهنمايي شما هرچه كردم نتونستم كاري پيش ببرم
بازم ممنون از راهنماييتون

Reza_Yarahmadi
یک شنبه 26 مهر 1388, 16:53 عصر
کافيه يه بار از متد Fill مربوط به TableAdapter استفاده کني (وقتي از طريق ويزارد ابزارها رو به فرم اضافه ميکني ، خودش يه دستور توي رويداد FormLoad مي نويسه ، اون دستور رو بعد از دستورات مورد نظرت بنويس!!)
اگه قراره همه اطالاعات جدول رو بخوني دستوري مثل دستور زير ميشه:

this.tableNameTableAdapter.Fill(this.DBNameDataSet .tableName);