• 0
..ريـومة..

عدم حفظ بيانات المشروع في قاعدة البيانات

سؤال

السلام عليكم ورحمة الله وبركاته

اود ان اعرف السبب لماذا ذاكرة حفظ بيانات برنامجي متطايرة؟

كل ما اردت حفظ شي في الداتا بيس تتم عمليه الادخال بشكل صحيح واذهب الى الجدول لاتاكد وارى البيانات فأجدها موجودة

ولكن عندما اغلق المشروع وافتحه بعد دقائق لا ارى اي من البيانات السابقة

تظهر انها فارغه

11041114112158re0nlgz3vc6t0.jpg

وجملة الادخال التي وضعتها هي هذه

    private void SaveData_btn_Click(object sender, RoutedEventArgs e)
{
SqlCommand comm = new SqlCommand("insert into Report_Table(child_id,child_name,child_age,child_gender,teacher_name,regest_date,color_stage_timer,shape_stage_timer,sound_stage_timer,Totaly_Time) values(@child_id,@child_name,@childe_age,@child_gender,@teacher_name,@regest_date,@color_stage_timer,@shape_stage_timer,@sound_stage_timer,@Totaly_Time)");
comm.Parameters.AddWithValue("@child_id", label1.Content);
comm.Parameters.AddWithValue("@child_name", label2.Content);
comm.Parameters.AddWithValue("@child_age", label3.Content);
comm.Parameters.AddWithValue("@child_gender", label4.Content);
comm.Parameters.AddWithValue("@teacher_name", label5.Content);
comm.Parameters.AddWithValue("@regest_date", label6.Content);

//______________________________

Report_Table t1=new Report_Table
{
child_id = label1.Content.ToString(),
child_name = label2.Content.ToString(),
child_age = System.Convert.ToInt32(label3.Content),
child_gender = label4.Content.ToString(),
teacher_name = label5.Content.ToString(),
regest_date = label6.Content.ToString(),
color_stage_timer=time_label.Content.ToString(),
shape_stage_timer=time_label2.Content.ToString(),
sound_stage_timer=time_label3.Content.ToString(),
Totaly_Time=totaly.Content.ToString(),



};


R1.Report_Tables.InsertOnSubmit(t1);
R1.SubmitChanges();









}

استخدمت طريقة الـ LINQ to SQL Classes

والبيئة هي wpf application

واصدار الفيجوال هو visual 2010 ultimate

علما باني كنت اعمل على اصدار 2008 ولم تكن تظهر هذه المشكله

هل له علاقة بالاصدار وان هناك خيار في الادوات بانقضاء فترة معينة لابقاء البيانات محفوظة؟ ام هي بجملة الاتصال ؟ ام ماذا

ارجو ان تفيدوني ماهو الحل

لان هناك شاشات تستوجب استخراج هذه البيانات واستخدامها في مواطن عدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

8 إجابة على هذا السؤال .

  • 0

السلام عليكم

المشكلة ليست في الاصدار الخاص بالفجوال استوديو

ولكن اجعلي خصيه الداتا بيس في الفجوال استوديو Copy To Output Directory

من Copy always الي Do not Copy

حيث انة يقوم باعادة نسخ ملف الداتا بيس في كل مرة تقومي بتشغيل البرنامج فيها فبالتالي لايحفظ البيانات التي قمتي بتسجيلها في كل مرة

بالتوفيق

تم تعديل بواسطه hay3am
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
السلام عليكم

المشكلة ليست في الاصدار الخاص بالفجوال استوديو

ولكن اجعلي خصيه الداتا بيس في الفجوال استوديو Copy To Output Directory

من Copy always الي Do not Copy

حيث انة يقوم باعادة نسخ ملف الداتا بيس في كل مرة تقومي بتشغيل البرنامج فيها فبالتالي لايحفظ البيانات التي قمتي بتسجيلها في كل مرة

بالتوفيق

وعليكم السلام ورحمة الله وبركاته

مشكور اخوي عالرد

لكن كيف اصل لهذه الخاصية؟

واتمنى ان توضح الفرق بين النوعين اذا سمحت

اود التوضيح انني ارجحت فكرة ان تكون المشكله من الاصدار لاني تعاملت مع الاصدار السابق وبنفس الداتا بيس ولم تقابلني هذه المشكله ولا اعلم ماهي الخاصيه التي تسمح بذلك

فربما تكون اعدادات ذلك الاصدار مثبتة بذلك افتراضيا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

انتي قمتي باضافة ال Data Source في الفجوال استوديو وظهر في ال Solution Explorer ملف

الدتا بيس فقومي بالضغط علي ملف الداتا بيس كليك يمن واختاري Properties هتظهر شاشة

Properties window هتلاقي هذة الخاصية وقومي بتغيرها

يوجد في خاصية Copy To Output Directory ثلاثة اختيارات

1- Copy always وهي الاختيار الافتراضي وهذا الاختيار يقوم بنسخ ملف الداتا بيس فكل مرة تقومي فيها بتجربة البرنامج حيث يتيح لك تجربة الكود علي ملف الداتا بيس دون الاحتفاظ بالبيانات ليبقي ملف الداتا بيس فارغ حتي الانتهاء من البرنامج وعمل ال Deploy لة

2- Do not Copy هنا يقوم بتسجيل البيانات اثناء تجربة البرنامج وهذة الخاصية تتطلب وجود نسخة فارغة من ملف الداتا بيس لاستخدامها عند عمل ال Deploy حتي لاتبقي البيانات التي كتبتها للتجربة موجودة لدي العميل

3- Copy If Newer هذة الخاصية يقوم بنسخ ملف الداتا بيس لو قمت بتغير الهيكل للملف الداتا بيس كاضافة جدول مسح جدول وغيرة

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعليكم السلام ورحمة الله وبركاته

مشكور اخي على ماقدمته من شرح للانواع الثلاثة وعلى تفاعلك معي

طبقت ماقلته وغيرت خاصيه الداتا بيس وقمت بتشغيل البرنامج

وعند قيامي بادخال البيانات للقاعدة ظهر لي هذا الخطأ

3e59c73259.jpg

وعندما اقوم بحذف الداتا بيس القديمة من السيرفر اكسبلورر واضافتها من جديد من مجلد bin\Debug

كما كنت اعمل سابقا لاتظهر لدي القاعدة نهائيا

ما السبب؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حاولت ان اعيد تشغيل البرنامج اكثر من مرة

ولكن لايزال نفس الخطأ موجود

2- Do not Copy هنا يقوم بتسجيل البيانات اثناء تجربة البرنامج وهذة الخاصية تتطلب وجود نسخة فارغة من ملف الداتا بيس لاستخدامها عند عمل ال Deploy حتي لاتبقي البيانات التي كتبتها للتجربة موجودة لدي العميل

وهذة الخاصية تتطلب وجود نسخة فارغة من ملف الداتا بيس<< هل هناك شي اخر اقوم بتعديله او اضافته حتى تنحفظ بياناتي؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته.

اختي اعتقد المشكلة في الكونيشن ,لي زميلة واجهتها نفس المشكلة كانت تحاول تعمل اتاش من الفلاش يطلع لها نفس الايرور بس لما نقلت الداتا بيس للـ Bin اشتغلت تمام.

عموماً احتمال يكون عندك اكثر من نسخة بنفس الاسم , تأكدي من

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\

جربي هذه المحاولة :

في البداية اعملي Deattach لملف الداتا بيس, و اتركي عملية الاتاش تحدث من خلال الكود , كالتالي:


string connectionString [email protected]"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\YOURDATABASENAME.mdf;Integrated Security=True";

في هذه الحالة عليكِ فقط وضع الداتا بيس طبعا [.mdf و log] داخل مجلد الـ Bin

اذا ما نفعت هالطريقة معك شوفي هذا الرابطيمكن يفيدك.

تمنياتي لكِ بالتوفيق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعليكم السلام ورحمة الله وبركاته

عذرا اختي فلم استطع ان ادخل بسبب انقطاعي عن النت

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\

ذهبت الى هذا المسار ولكن مالذي افعله؟ لم اجد الداتا بيس هناك هل كنتي تقصدين ان اضعها هناك ام ماذا؟

وبالنسبة لهذه العملية:

 string connectionString [email protected]"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\YOURDATABASENAME.mdf;Integrated Security=True";

اين اضع هذه الجملة؟

لانني في هذه البيئة لا اتعامل مع جمل الاتصال فقط اقوم باضافه Linq to sql classes واتعامل مع الجداول بطريقة الربط

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

المشكلة لديكي يا اختي الفاضلة بانك قمتي بربط برنامج بقاعدة البيانات المدمجة في برنامجك عن طريقة توجيه الـ connection الى مجلد برنامجك دون تحديد مسار محدد وما يقوم به برنامج الان في كل مرة تقومين بتشغيل البرنامج فيها هو عمل نسخة عن قاعدة البيانات وكامل اكواد برنامج الى مجلد debug ففي كل مرة يقوم بالكتابة عليه ولا يقوم بتحرير قاعدة البيانات الخاصة بك والتي توجد في مجلد برنامج الرئيسي.

كل ما عليك هو تحديد مسار قاعدة البيانات كامل في الـ connection مثال:

C:\mdf_data\Database1.mdf

تقبلو وافر تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .