پایگاه داده

Ftmthri

New Member
سلام
من در برنامم از پایگاه داده استفاده کردم اما هربار ک برنامه رو میبندم برای ران کردن مجدد برنامه دیگه نمیتونم به اطلاعات پایگاه قبلی دسترسی داشته باشم و بریک میکنه
مگه اینکه تمام ردیف های جدول رو پاک کنم و دوباره ران کنم.
برای اینکه این مشکل پیش نیاد چ کار باید بکنم؟
 

پیوست ها

  • Screenshot (52).png
    Screenshot (52).png
    129.7 کیلوبایت · بازدیدها: 1
  • Screenshot (54).png
    Screenshot (54).png
    164.3 کیلوبایت · بازدیدها: 1

the_king

مدیرکل انجمن
سلام
من در برنامم از پایگاه داده استفاده کردم اما هربار ک برنامه رو میبندم برای ران کردن مجدد برنامه دیگه نمیتونم به اطلاعات پایگاه قبلی دسترسی داشته باشم و بریک میکنه
مگه اینکه تمام ردیف های جدول رو پاک کنم و دوباره ران کنم.
برای اینکه این مشکل پیش نیاد چ کار باید بکنم؟
شما برای جدول tblmosh یک کلید id تعریف کردید و به هیچ عنوان نباید مقدار تکراری داشته باشه. یعنی نباید دو سطر در جدول تون باشه که مقدار این کلید در هر دو سطر یکسان باشه.
مشکل اینجا است که در تعریف جدول مشخص کردید که این مقدار id رو خودم وارد می کنم. یعنی مدیریت مقدار id برای سطر های جدید رو خودتون بر عهده گرفتید.
شما تلاش می کنید اون n که مقدارش 1 ئه رو به عنوان id در سطر جدید ثبت کنید و چون از قبل همچین id ای برای سطر دیگری ثبت شده، خطا میگیره که این id قابل قبول نیست.

پیشنهادم اینه که اجازه بدید اون id مقدارش رو بصورت خودکار انتخاب کنه و خودتون درگیر مقداردهی با n نشید.
روی اون tblmosh راست کلیک کنید و گزینه Open Table Definition رو انتخاب کنید.
سطر id رو فعال کنید رو رویش راست کلیک کنید و Properties رو انتخاب کنید.
در پنجره Properties اش Identity Specification رو باز کنید. گزینه (Is identity) رو true کنید و مطمئن شوید که Identity Increment مقدار 1 داره.
بالای جدول گزینه Update رو انتخاب کنید، روی دکمه Generate Script کلیک کنید و اون کد Script ای که ساخته میشه رو اجرا کنید (Ctrl + Shift + E)
حالا می توانید اون پنجره Script و جدول رو ببندید و نیازی به ذخیره کردن کد sql هم نیست.
الان ساختار پایگاه داده تون اصلاح شده.
حالا باید اون DataSet قدیمی که در پروژه هست رو با نسخه جدید جایگزین کنید. اون DataSet ای که به پروژه تون اضافه کردید و البته کدش رو خودتون ننوشتید و DataAdapter ای که روی فرم استفاده میکنید رو حذف کنید و از نو پایگاه داده رو به پروژه تون اضافه کنید تا DataSet جدید بر اساس تغییرات ایجاد بشه.
موقعی که اینکار رو کردید، در DataAdapter جدید میبینید که Insert ازتون همه مقادیر رو میخواد، بجز اون id. یعنی اصلا ازتون n رو نمیخواد که وارد کنید. خودش برای id مقدار جدیدی در نظر میگیره.
 

جدیدترین ارسال ها

بالا