PDA

View Full Version : //**عدم تغییر اطلاعات دیتابیس بعد از بستن برنامه**\\



zayens
شنبه 22 خرداد 1389, 14:16 عصر
چرا وقتی برنامه را می بندم و دوباره اجرا می کنم اطلاعاتی که ذخیره یا ویرایش کرده بودم به همون حالت اول برمیگرده؟؟؟؟
البته قبلا که دیتابیسم به sql2008 وصل و اتچ بود و کانکشن زیر را داشتم مشکلی نداشتم.


Mycn = new SqlConnection("Server=ZAYENS-PC\\MYSQLSERVER;database=RESTAURANT;Integrated Security=True;");

اما
از وقتی فایل دیتابیسم را توی Bin\Debug گذاشتم و به برنامه Add کردم و از کانکشن استرینگ زیر استفاده میکنم صد تا مشکل اومده سراغم


Mycn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\DBRESTORANS.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

علت را کی میدونه که چرا جدیدا تغییرات بعد اجرای دوباره ی برنامه لحاظ نمیشه؟؟

s.khoshfekran
شنبه 22 خرداد 1389, 15:22 عصر
قبل ازینکه ببندی برنامتو دیتابیستو update میکنی؟

seven7777777
شنبه 22 خرداد 1389, 18:09 عصر
اولا سلام
دوما شما چجوری دیتابستو آپدیت می کنی ؟
سوما می دونی که در هر بار اجرای برنامه دیتابیس مجددا کپی میشه و دیتابیس اولیه که اتچ کردی جایگزین میشه . برای جلوگیری از این مورد در خصوصیات باید این حالت رو تغییر بدی تا دیتابیست بعد از هر اجرا ثابت بمونه ...

zayens
شنبه 22 خرداد 1389, 19:43 عصر
اولا سلام
دوما شما چجوری دیتابستو آپدیت می کنی ؟

من از استوردپرسیجری که به برنامه ام Add شده استفاده می کنم:


ALTER proc UserUp
@USERID int,
@USERNAME nvarchar(50) ,
@USERNICKNAME nvarchar(50),
@USERPASSWORD nvarchar(50)
as
update USERS set USERNAME=@USERNAME,USERNICKNAME=@USERNICKNAME,USER PASSWORD=@USERPASSWORD where USERID=@USERID



می دونی که در هر بار اجرای برنامه دیتابیس مجددا کپی میشه و دیتابیس اولیه که اتچ کردی جایگزین میشه . برای جلوگیری از این مورد در خصوصیات باید این حالت رو تغییر بدی تا دیتابیست بعد از هر اجرا ثابت بمونه ...
؟؟
چه طور باید این کار را بکنم؟
قبلا که دیتابیس را Add نکرده بودم و به خود sql کانکت میشدم و اونجا از همین دستورات استفاده می کردم که مشکلی نبود؟

zayens
شنبه 22 خرداد 1389, 19:47 عصر
قبل ازینکه ببندی برنامتو دیتابیستو update میکنی؟
منظورت کل دیتابیسه؟
چه طور باید این کار را کنم؟

پارسا کیانبخت
شنبه 22 خرداد 1389, 20:07 عصر
دوست عزیز من چند وقت پیش همین مشکل رو داشتم.

پروژه رو باز کن و دیتابیس رو انتخاب کن و مشخصه Copy To Output دیتابیس را بر روی Copy If Newer تنظیم کن.

مشکل من با این کار حل شد.

موفق باشی

zayens
شنبه 22 خرداد 1389, 20:17 عصر
دوست عزیز من چند وقت پیش همین مشکل رو داشتم.

پروژه رو باز کن و دیتابیس رو انتخاب کن و مشخصه Copy To Output دیتابیس را بر روی Copy If Newer تنظیم کن.

مشکل من با این کار حل شد.

موفق باشی
بسیار ممنون
قسمت Build Action را نیازی هست که تغییر بدم؟
چون یه مشکل دیگه ای هم که دارم کار با کریستال هست
استورد پرسیجری را که Expert می کنم و دارای پارامتر هست، متاسفانه هیچ پارامتری را به Parameter Fields نمیفرسته. چرا؟

zayens
شنبه 22 خرداد 1389, 22:32 عصر
کسی جوابی نداره؟
دو پست زیر مشکل و سوالی که پرسیدم را کامل تشریح میکنه
http://www.barnamenevis.org/forum/showpost.php?p=1009842&postcount=23
http://www.barnamenevis.org/forum/showpost.php?p=1009851&postcount=24

ostovarit
یک شنبه 23 خرداد 1389, 00:48 صبح
کسی جوابی نداره؟
دو پست زیر مشکل و سوالی که پرسیدم را کامل تشریح میکنه
http://www.barnamenevis.org/forum/showpost.php?p=1009842&postcount=23
http://www.barnamenevis.org/forum/showpost.php?p=1009851&postcount=24

منم دقیقا همین مشکل رو دارم اطلاعاتم رو در یک گرید نمایش میدم کاربر ویرایش میکنه گاهی اوقات اطلاعات ذخیره میشه و گاهی نه ؟!!!!
اگر به جواب رسیدید ممنون میشم به منم راهنمایی کنید
با تشکر

zayens
یک شنبه 23 خرداد 1389, 09:57 صبح
منم دقیقا همین مشکل رو دارم اطلاعاتم رو در یک گرید نمایش میدم کاربر ویرایش میکنه گاهی اوقات اطلاعات ذخیره میشه و گاهی نه ؟!!!!
اگر به جواب رسیدید ممنون میشم به منم راهنمایی کنید
با تشکر
اگر عمل ویرایش با استورپرسیجر انجام میشه اونوقت مشکل شما در ساخت جداول sql هست.
مثلا اگر در عضوی از جدولی از (nvarchar(50 استفاده کنید و کاربر بیشتر از 50 کاراکتر وارد کنه چنین مشکلی رخ میده.
باید گرید خود را محدود کنید
در ضمن:
همیشه از ;()Trim استفاده کنید

ostovarit
یک شنبه 23 خرداد 1389, 10:19 صبح
اگر عمل ویرایش با استورپرسیجر انجام میشه اونوقت مشکل شما در ساخت جداول sql هست.
مثلا اگر در عضوی از جدولی از (nvarchar(50استفاده کنید و کاربر بیشتر از 50 کاراکتر وارد کنه چنین مشکلی رخ میده.
باید گرید خود را محدود کنید
در ضمن:
همیشه از ;()Trim استفاده کنید


نه بیشتر که تست کردم متوجه شدم دفعه اول که ویرایش میکنم ذخیره نمیشه دوباره که صفحه رو باز بسته میکنم و گرید بایند میشه و همون ستون رو با همون مقدار ویرایش میکنم حالا ذخیره میشه!!! نه کد تغییر کرده نه مقدار نه ستون ... همه چی همونوه ولی دو دفعه باید ویرایش کنم یا اینکه بیش از یک ستون ویرایش کنم تا ذخیره کنه!

zayens
یک شنبه 23 خرداد 1389, 11:03 صبح
کد را بذارین
کد همین یه فرم را
البته اینجا نه
در تاپیک خودتون
فکر کنم bind کردن را در هنگام لود شدن نذاشتین

ostovarit
یک شنبه 23 خرداد 1389, 11:24 صبح
کد را بذارین
کد همین یه فرم را
البته اینجا نه
در تاپیک خودتون
فکر کنم bind کردن را در هنگام لود شدن نذاشتین

یکی از مشکلاتم همین بود لطفا این تاپیک رو ببینید و اگر امکانش هست جواب سوال پست اخرم رو بدید مشکلم حل شده ولی دلیل رو هنوز نمیدونم!

http://barnamenevis.org/forum/showthread.php?t=227239