PDA

View Full Version : مشکل در ذخیره داده در بانک



touraj
شنبه 17 شهریور 1386, 10:35 صبح
من یه برنامه تو VB2005 نوشتم که به بانک Access وصل شده. همه چیزش درسته غیر از ذخیره کردن داده. یعنی وقتی دکمه Save رو میزنم تا زمانی که برنامه در حال اجراست، ظاهراً ذخیره انجام میشه. اما وقتی برنامه رو میبندم و دوباره اجراش میکنم چیزی به بانک اضافه نشده! دستورات مربوط به ذخیره سازی رو از MSDN گرفتم. البته در مورد حذف هم چنین مشکلی وجود داره. باید چیکار کنم؟ (میدونم سوالم برای خیلی از شماها ساده و احمقانه هستش، اما خب، تو net. یه جورایی تازه کارم)

touraj
شنبه 17 شهریور 1386, 10:53 صبح
خواهشاً کمک کنین. همه چیز برنامه آماده هستش. الا این یه قسمت. این مشکل هم حل بشه، میتونم یه setup براش بسازم.

h_sadeghynejad
شنبه 17 شهریور 1386, 11:08 صبح
عزیزم این طوری که معلوم نمیشه دستورت رو بنویس تا دوستان ببینند اگه مشکلی داشت بهت بگن یا حداقل بگو که از چه روشی برای ذخیره کردن توی پایگاه داده استفاده کردی

touraj
شنبه 17 شهریور 1386, 11:15 صبح
ممنونم دوست عزیز. دستوراتی که من استفاده کردم اینه:


Me.Validate()
Me.IncimeBindingSource.EndEdit()
Me.IncimeTableAdapter.Update(Me.dbDataSet.Incime)


که Incime اسم جدول منه. db هم اسم بانک اطلاعاتی.

touraj
شنبه 17 شهریور 1386, 12:28 عصر
کمکی نبود؟

Barbodben
شنبه 17 شهریور 1386, 23:56 عصر
سلام
دوست عزیز، چیزی که من فکر می کنم اینه که شما برای جدولی که با اکسس ساختین فیلد کلیدی مشخص نکردین.

در این جور مواقع VB.NET یک errorرم میده ولی نشون نمیده، که میتونی بعد از اون سه خط کد ذخیره اینو وارد کنی:


MessageBox.Show(Err.Number)


:متفکر:

touraj
یک شنبه 18 شهریور 1386, 00:45 صبح
سلام
دوست عزیز، چیزی که من فکر می کنم اینه که شما برای جدولی که با اکسس ساختین فیلد کلیدی مشخص نکردین.

در این جور مواقع VB.NET یک errorرم میده ولی نشون نمیده، که میتونی بعد از اون سه خط کد ذخیره اینو وارد کنی:


MessageBox.Show(Err.Number)


:متفکر:

ممنونم. اما فیلد کلیدی مشخص شده. حتی یه msg box گذاشتم که در صورت انجام آپدیت پیغام update succed بده و در صورت آپدیت نشدن پیغام update error. در تمام موارد پیغام update succed ظاهر میشه. اما داده های بانک تغییری نمیکنن!

Barbodben
دوشنبه 19 شهریور 1386, 03:46 صبح
نمی خوام زیاد با کدای الکی پیچیده گیجتون کنم،فقط برای اینکه امتحان کنین ببینین برنامتون اصلا راه می افته. حالا این دوتا مدله دیگرو امتحان کنین:

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

Barbodben
دوشنبه 19 شهریور 1386, 08:21 صبح
با عرض پوزش یادم اومد که کدای بالا مربوط به UPDATE هستند.

این دوتایی که میزارم مربوط به New و Save هستند، ولی اونارو هم در نظر داشته باشبن به درد میخورن.



Dim NewRow As DataRow = DataSetName.Tables("Information").NewRow()




TOARow("ID") = txtID.Text

TOARow("Name") = txtName.Text
TOARow("Family") = txtFamily.Text
DataSetName.Tables("Information").Rows.Add(TOARow)
InformationTableAdapter.Update(DataSetName.TOA)



"INSERT INTO Information(ID,Name,Family) VALUSE('" & Val(txtID.Text) & "','" & txtName.Text & "','" & txtFamily.Text & "','" & "')"

md_bluelily
دوشنبه 19 شهریور 1386, 21:07 عصر
عزیز این خط رو حذف کن و بعد نتیجه رو اعلام کن.

()Me.IncimeBindingSource.EndEdit

موفق باشید.

پویا
سه شنبه 20 شهریور 1386, 13:35 عصر
من یه بار به چنین مصیبتی دچار شدم
هر کاری کردم درست نشد که نشد.
با پروفایلر چک می کردم موقعی که بایدInsert می کرد دستور Update را اجرا می کرد

آخرش مجبور شدم همه چی رو پاک کنم دوباره بنویسم
حالا درست کار میکنه

اگه می تونی همین کارو بکن

touraj
پنج شنبه 22 شهریور 1386, 09:38 صبح
عزیز این خط رو حذف کن و بعد نتیجه رو اعلام کن.

()Me.IncimeBindingSource.EndEdit

موفق باشید.

حذفش کردم. نشد :گریه:

touraj
پنج شنبه 22 شهریور 1386, 09:41 صبح
با عرض پوزش یادم اومد که کدای بالا مربوط به UPDATE هستند.

این دوتایی که میزارم مربوط به New و Save هستند، ولی اونارو هم در نظر داشته باشبن به درد میخورن.
.....


[/LEFT]

این کدها رو هم امتحان کردم/ بازم نشد دوست عزیز

touraj
پنج شنبه 22 شهریور 1386, 09:43 صبح
با عرض پوزش یادم اومد که کدای بالا مربوط به UPDATE هستند.

این دوتایی که میزارم مربوط به New و Save هستند، ولی اونارو هم در نظر داشته باشبن به درد میخورن.
....

[/LEFT]

این کدها رو هم امتحان کردم. نشد دوست عزیز

touraj
پنج شنبه 22 شهریور 1386, 09:46 صبح
من یه بار به چنین مصیبتی دچار شدم
هر کاری کردم درست نشد که نشد.
با پروفایلر چک می کردم موقعی که بایدInsert می کرد دستور Update را اجرا می کرد

آخرش مجبور شدم همه چی رو پاک کنم دوباره بنویسم
حالا درست کار میکنه

اگه می تونی همین کارو بکن

تمام موارد مربوط به دیتابیس رو حذف کردم و دوباره نوشتم. اما فرقی نکرد.
کدهایی هم که Barbodben نوشته بود رو هم امتحان کردم. نشد که نشد.

Barbodben
پنج شنبه 22 شهریور 1386, 14:02 عصر
جسارتا اگر برنامتون محرمانه نیست اونو بزارین اینجا تا اگر کسی تونست کمکتون کنه

hamed_bostan
پنج شنبه 22 شهریور 1386, 14:55 عصر
دوست عزیز چک کن ببین پوشه ای که ذیتابیست داخلشه اجازه write داشته باشه .
اگر مشکل حل نشد به قول دوست عزیزمون Barbodben (http://barnamenevis.org/forum/member.php?u=36234) برنامه رو بذار ببینیم مشکل از کجاست

touraj
پنج شنبه 22 شهریور 1386, 20:25 عصر
برنامه که محرمانه نیست. اما حجمش زیاده. یه بخشش دیتابیسه. یه چیزی حدود 300 مگابایت حجمشه!
چه جوری باید چک کنم که پوشه اجازه write داره یا نه؟
من وقتی دیتابیس رو add کردم، ازم پرسید که میخوای دیتابیس رو وارد پروژه کنی که من جواب yes رو زدم.

Barbodben
جمعه 23 شهریور 1386, 18:15 عصر
راستی یک چیز دیگه ام یادم اومد، شاید مسخره باشه، ولی پیش اومده

برنامتونو با Visual Stutio اجرا نکنین، یعنی برین از تو پوشه ی Debug برنامه ی exe شدتونو

اجرا کنین.

:متفکر:

PC2st
جمعه 23 شهریور 1386, 18:53 عصر
من وقتی دیتابیس رو add کردم، ازم پرسید که میخوای دیتابیس رو وارد پروژه کنی که من جواب yes رو زدم.
در محیط Visual Studio، از پنجره Solution Explorer نام بانک اطلاعاتی (Database) رو انتخاب کنید و به لیست خاصیت هایی که در پنجره Properties ظاهر میشه، دقت کنید... نگاه کنید که آیا خاصیت Copy to output directory روی Copy Always تنظیم نشده؟

touraj
یک شنبه 25 شهریور 1386, 18:40 عصر
در محیط Visual Studio، از پنجره Solution Explorer نام بانک اطلاعاتی (Database) رو انتخاب کنید و به لیست خاصیت هایی که در پنجره Properties ظاهر میشه، دقت کنید... نگاه کنید که آیا خاصیت Copy to output directory روی Copy Always تنظیم نشده؟

آقا دستت درد نکنه. کلی بهم کمک کردی. روی copy always بود. وقتی روی copy if new گذاشتم درست شد. از همه دوستان ممنون که کمک کردن.:لبخندساده:
راستی کتابهای #C رو هم دانلود کردم. خیلی خوبن. دستت درد نکنه.

art2000ir
دوشنبه 26 شهریور 1386, 12:43 عصر
اقا نکته بسیار ظریفی بود
تابحال به این مشکل برنخورده بودم

touraj
دوشنبه 26 شهریور 1386, 20:57 عصر
اقا نکته بسیار ظریفی بود
تابحال به این مشکل برنخورده بودم

این نکته ای که این پایین نوشتی فوق العاده بود:تشویق:

spanishtrain
سه شنبه 27 شهریور 1386, 10:36 صبح
آقا کداتو دسکاری نکن دیتا شما ذخیره میشه ولی توی یه کپی از دیتا بیست که در شاخه Bin\debuge ولی شما در هنگام برنامه نویسی بانکی که تو شاخه اصلی برنامس باز می کنی

sama01
دوشنبه 16 مهر 1386, 04:48 صبح
من از vs2005 و بانک اطلاعاتی sqlserver استفاده می‌کنم. من با افزودن مقادیر جدید به دیتابیس مشکل دارم. ولی این خصوصیتی را که شما بیان کردید در خصوصیات دیتابیسم نمی‌بینم.
جهت تکمیل توضیحاتم عرض کنم که ظاهرا وقتی برنامه در حال اجراست، اطلاعات اضافه می‌شن. ولی وقتی به محیط vs بر می‌گردم، چیزی در بانک ذخیره نشده.

تصحیح:
شرمنده. من در server Explorer دنبالش می گشتم.