PDA

View Full Version : مشکل با ADO.NET



alians802
یک شنبه 01 آذر 1383, 01:10 صبح
آقای نصیری عزیز سلام
من این سوالات را قبلا هم در جاهای دیگر پرسیده ام و جواب نگرفته ام
اولاْ textbox به دیتابیس وصل می شود و اطلاعات را نشان می دهد اما وقتی از متد update یک dataadapter استفاده می کنم نمی دانم چرا دیتابیس به روزرسانی نمی شود ! در حالی که برای دیتاگرید این مشکل وجود ندارد
در ثانی آیا یک کامپوننتی هست که بتوانم در برنامه استفاده کنم و محیط طراحی فرم اکسس را برایم فراهم کند و با آن بتوانم در دیتابیس تیبل ایجاد نمایم ؟ البته منظورم یک کامپوننت رایگان می باشد !
در مورد فروم های این سایت دارم. آیا امکان دارد که از یک فروم بخواهم هر وقت آپدیت شد برایم ایمیلی فرستاده شود ؟!‌
با تشکر فراوان

zrahimic
سه شنبه 08 دی 1383, 14:31 عصر
سلام
من قبلا با این مشکل روبرو شده بودم و آن را به صورت زیر کردم.
ابتدا بگویم که دلیل اینکه دیتابیس بروز نمی شود این است که اطلاعات textbox فقط هنگام load شدن از پایگاه داده گرفته میشود و ارتباط پیوسته ای با پایگاه داده ندارد در نتیجه بعد از اینکه اطلاعات textbox اصلاح شد با اجرای دستور update کامپوننت dataadapter بروزرسانی نمی شود. برای این کار می بایست یک dataRow از Table مورد نظر گرفته و اطلاعات textbox را در فیلدهای آن بریزید. بعد با اجرای دستور update پایگاه داده بروز رسانی می شود.

mojtaba_mr
شنبه 19 دی 1383, 01:26 صبح
یک سوال حیاتی :
چگونه میشود یک رکورد را از دیتابیس حذف کرد .
با ذکر مثال لطفا" .
::نوشتن::

alians802
دوشنبه 21 دی 1383, 01:12 صبح
با تشکر از توجه شما اما من هنوز سوالم بر طرف نشده . وقتی یک دیتاگرید با یک textbox روی یک فرم داریم و هر دو را به یک دیتاتیبل از یک دیتاست وصل کرده ایم (یعنی textbox در حال نمایش یک فیلد از آن جدول است) و داریم در آن جدول پرسه می زنیم و اطلاعات آن را اصلاح می کنیم اگر بیاییم و بعد از هر تغییری از دستور sqldataadapter1.update(ds)0 استفاده کنیم فقط آن موقعی دیتابیس به روزرسانی می شود که ما بیاییم و در دیتا گرید تغییری بدهیم. وگرنه اگر تغییر در textbox اعمال شده باشد و از updateاستفاده کنیم دیتابیس به روزرسانی نمی شود! موردی که شما فرموده بودید شبهه من را وقتی بیشتر کرد که در مثال بالا که هم یک دیتا گرید روی فرم هست و هم یک textbox وقتی در textbox یک تغییری می دهیم همان موقع دیتاگرید بالایی به روزرسانی شده و نتیجه تغییر کرده را می بینیم ! اگر بعد از به روزرسانی شدن دیتاگرید دستورupdate را اجرا نماییم دیتابیس به روزرسانی می شود و گرنه نمی شود! خلاصه خودم هم گیج شده ام که چطور ممکن است چنین اتفاقی بیفتد! لطفا یک دیتاگرید و یک textbox روی فرم بسازید و مطلب فوق را امتحان کنید بعد شاید بهتر مشکل من را متوجه شوید

zrahimic
چهارشنبه 23 دی 1383, 09:09 صبح
شما یکبار دیگر نوشته مرا با دقت بخوانید. روش حل مشکل را در آن توضیح داده ام. در ضمن همانطور که گفته ام من قبلا با این مشکل برخورد کرده بودم.
bindی که datagrid با table برقرار می کند به علت خصوصیات خود datagrid با textbox فرق می کند.

alians802
چهارشنبه 23 دی 1383, 18:38 عصر
:thnx:
برای حذف رکورد از دیتابیس دو راه وجود دارد : استفاده از DataCommand And SQL Commands که در این روش دستور مربوطه SQL در قالب رشته به DataCommand اتصال داده می شود و متد اجرای آن فراخوانی می شود در نتیجه دیتابیس رکورد یا رکوردهای مورد نظر را حذف می نماید که البته این کار دستی است و نیازی نیست که در کارهای غیر حرفه ای این کار را انجام دهید.
روش دوم این است که کامپوننت های مورد نظر را به دیتاست بایند کنید و بعد در محیط ویژوالی (پس از اجرا) رکورد مورد نظر را حذف کنید یا اینکه در کد رکورد مورد نظر را از دیتا ست حذف کنید . خلاصه اینکه ابتدا باید رکورد مربوطه را از دیتا ست حذف کنید سپس با اجرای دستور dataAdapter1.update() می توانید دیتابیس را به روزرسانی نمایید من چون نمی دانم شما چه مقدار در مورد ADO.NET اطلاعات دارید نمی توانم خوب کمکتان کنم . موفق باشید