پایگاه داده

شروع موضوع توسط Ftmthri ‏12 ژوئن 2019 در 22:26 در انجمن برنامه‌نویسی C و هم خانواده‌هایش

  1. Ftmthri

    Ftmthri New Member

    ارسال‌ها:
    10
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    سلام
    من در برنامم از پایگاه داده استفاده کردم اما هربار ک برنامه رو میبندم برای ران کردن مجدد برنامه دیگه نمیتونم به اطلاعات پایگاه قبلی دسترسی داشته باشم و بریک میکنه
    مگه اینکه تمام ردیف های جدول رو پاک کنم و دوباره ران کنم.
    برای اینکه این مشکل پیش نیاد چ کار باید بکنم؟
     

    پیوست ها:

    نوشته شده توسط Ftmthri در ‏12 ژوئن 2019 در 22:26
  2. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,887
    تشکر شده:
    10,961
    امتیاز دستاورد:
    113
    شما برای جدول 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 مقدار جدیدی در نظر میگیره.
     
    نوشته شده توسط the_king در ‏13 ژوئن 2019 در 02:44
    SajjadKhati و Ftmthri از این پست تشکر کرده اند.

به اشتراک بگذارید