• 0
shmookh

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

سؤال

السلام عليكم

ممكن مساعده طااارئه :(

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

مثل زر ال fx في الاكسل بالضبط

يستقبل داله ويطلع ناتجها

مشكوووووووووووورين مقدما

0

شارك هذا الرد


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

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

  • 0

السلام عليكم

ممكن مساعده طااارئه :(

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

مثل زر ال fx في الاكسل بالضبط

يستقبل داله ويطلع ناتجها

مشكوووووووووووورين مقدما

باستخدام السي شارب

0

شارك هذا الرد


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

ما هو شكل المعادلة بالتحديد. [رياضيا]؟

 

وما هي كل الإحتمالات الممكنة لشكل المعادلة [ أحيانا يكون أحد أطراف المعادلة = 0. فهل سيدخل ضمن شكل المعادلة]

 

قومي بعرض أشكال المعالادت الممكنة، وطريقة كتابة المعادلة. لنتمكن من معالجة كافة الحالات.

0

شارك هذا الرد


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

مشكور استاذ طارق على الر د

بس لو احدد شكل داله معينه كذه باتكون ما تقبل الا من هذا النوع :mellow:

ومربع النص اللي في الاكسل تبع fx يمكنك من انك تدخل اي داله ..

وانا ايضا هدفي زي الاكسل بالضبط ..

العمليات اللي بيستخدمها هي الاربع العمليات الاساسيه بس (+ و- و* و/)

اتمنى يكون وصل قصدي

مشكور مره ثانيه :)

0

شارك هذا الرد


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

نعم.

إذا كان الهدف تعليمي. فنحن بحاجة لعمل Parser. للمعادلة. عن طريق Regural Expression. حيث سنقوم بتجزئة نص المعادلة مع مراعاة الأقواس وألوليات العلمليات الرياضية. وبالطبع هناك مجموعة من العمليات الحسابية ضمن كلاس Math نستطيع الاستفادة منها.

الكلام هنا على عدد غير محدود من المعادلات الرياضية.

.

إذا كان الهدف ليس تعليمي وإنما الإستفادة من هذه الخدمة ضمن مشروع معين. فيمكننا التعامل مع excel ضمن مشروعنا وطلب خدمات رياضية منه. أي سنقوم بالتعامل مع Excel API

ويوجد أيضا العديد من المشاريع او المكتبات معدة مسبقا. نستطيع ايضا دمجها ضمن مشروعنا.

الخيار عائد لك.

0

شارك هذا الرد


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

استاذ طارق

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

انت قصدك افتح اكسل داخل المشروع ؟

بس لو كذه كأ ن احنا ما عملنا شي

لان مشروعنا مشروع قواعد بيانات

وشكرا مره ثانيه على تعاونك

0

شارك هذا الرد


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

بالطبع لن نقوم بفتح برنامج الإكسل ضمن مشروعنا!

 

نستطيع التعامل مع الإكسل بدون أن نفتحه  عن طريق [API]،  فالأصل في بناء البرمجيات هو توفير الخدمات عن طريق المكتبات وهو ما يعرف ب [ API: Application Programming Interface]. مثلاً الفيجوال ستوديو عبارة عن واجهة عرض فقط لخدمات NET Platform. فنحن نستطيع كتابة كود سي شارب خارج الفيجوال، ثم نقوم بترجمة الكود عن طريق cmd

وبالتالي فنحن نستطيع التعامل مع الإكسل [ضمنياً]. فنرسل بيانات لمكتبات الإكسل التي ستعالج البيانات وترجع بالنتيجة بدون أي واجهات عرض. 

. في مشروع تخرجي مثلاً احتجت لبرنامج Prolog. فقمت بالتعامل مع مكتباته عن طريق سي شارب.

 

نستطيع التعامل مع الإكسل ضمن سي شارب عن طريق [COM]، حيث نقوم بإضافة مكتبة إكسل وهي [using Microsoft.Office.Interop.Excel]. وهكذا نستطيع التحدث مع إكسل ضمن كود سي شارب.

 

لكن كان سؤالي: هل الهدف هو بناء Control لمعالجة المعادلات الرياضية؟ أم أن الهدف هو الإستخدام فقط؟

-- بما أن المشروع قواعد بيانات، فأنت بحاجة للخدمة فقط.

لذلك انصحك بقراءة الرابط التالي من ميكروسوفت حول الربط مع Excel

http://msdn.microsoft.com/en-us/library/dd264733.aspx

 

بالتوفيق

0

شارك هذا الرد


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

استاذ طارق

مشكوووووووووووووووووووووور جدا

باقي سؤال في قواعد البيانات ولو ازعاج

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

ليش ؟!!

هذا الكود ممكن اخذ من وقتك وتقول لي ايش الخطأ ؟!!

 

-------------------------------------

string add_com = "insert into procreational values(" + comboBox3.SelectedItem + "," + textBox1.Text + "," + comboBox1.SelectedItem + ")"+comboBox2.SelectedItem+")"; SqlCommand add = new SqlCommand(add_com, connection); add.ExecuteNonQuery(); MessageBox.Show(" تم إضافه نيابه جديده بنجاح"); textBox1.Text = ""; textBox6.Text = ""; textBox3.Text = ""; comboBox1.Text = ""; comboBox2.Text = ""; comboBox3.Text = ""; comboBox4.Text = "";

0

شارك هذا الرد


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

شكرا جدا استاذ طارق على تعاونك,بس ايش قصدك ب(نتعامل ضمنيا مع الاكسل),,

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

بس بنيه اني افتح البرنامج وفي النهايه كان يطلع عندي خطأ

0

شارك هذا الرد


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

الأخت شموخ.

 

الخطأ بالتأكيد هو في كتابة Command.

مثلاً انت تفترضين أن يقوم المستخدم بإدخال قيمة عديدة أو كلمة معينة ضمن textBox1. لكي تقومي بإدخالها إلى قاعدة البيانات. ماذا لو قام المستخدم بإدخال Command أي قام بكتابة Query بدل أن يكتب إسمه بالتالي أصبح بإمكانه تغيير شكل Command. وتنفيذ ما يريد إلى قاعدة البيانات وهذا ما يسمى ب Sql Injection. لذلك يجب أن نتفادى هذه الخطوة ونقوم بإدخال ال Parameters بشكل صحيح. لذلك نستطيع إستخدام الصيغة التالية:

            string add_com = "insert into procreational values(@value1, @value2, @value3, @value4)";                        SqlCommand add = new SqlCommand(add_com, connection);            add.Parameters.AddWithValue("@value1", comboBox3.Text);            add.Parameters.AddWithValue("@value2", textBox1.Text);            add.Parameters.AddWithValue("@value3", comboBox1.Text);            add.Parameters.AddWithValue("@value4", comboBox2.Text);

قمنا بتعريف أسماء المتغيرات ضمن الـ Command ثم قمنا فيما بعد بإسناد قيم لها قبل أن نستدعي ExecuteNonQuery.

 

لكن علينا الإنتباه !

1. يجب أن يكون عدد المتغيرات المدخلة متوافقة مع عدد حقول الجدول في قاعدة البيانات. أي نحن هنا نقوم بإدخال 4 قيم، فمن المفترض أن يكون عدد الحقول بالجدول 4 أيضاً. إذ لم يكن كذلك فعليك تحديد القيم المراد إدخالها عن طريق الـ Command. كمثال بسيط:

 string query "insert into Product (Name, Price) values(@name, @value)"

هنا قمنا بتحديد الحقول المراد إدخال البيانات إليها، فنلاحظ عدد الحقول مساوي لعدد القيم المراد ادخالها.

 

2. إذا كان هناك قيم عديدة نريد تسجيلها في الجدول مثل السعر مثلاً، فيجب علينا تحويل قيمة TextBox.Text من نص إلى عدد عن طريق Parse أو Convert.

 

3. نلاحظ أننا قمنا بإختيار الخاصية Text بدلاً من SelectedItem ضمن ComboBox، وذلك لأن الخاصية SelectedItem هي من نوع object لذلك لن تعطينا النص الظاهر على ComboBox وإنما ستعطينا هرمية العنصر المختار ضمن .NET Paltform

 

 

أما فيما يخص ظهور رسالة "تم الحفظ" السبب أن هذه الرسالة غير مربوطة بشرط معين، أي سواء تم تنفيذ الـ Command أم لا فسوف تظهر الرسالة. ولكي نقوم بوضعها ضمن شرط، نستطيع حفظ عدد الأسطر التي تمت كتابتها إلى قاعدة البيانات حيث يرجع هذا الرقم عن طريق الميثود ExecuteNonQuery. كالتالي:

            int rows = add.ExecuteNonQuery();            if (rows > 0)                MessageBox.Show(" تم إضافه نيابه جديده بنجاح");            else                MessageBox.Show("لم يتم الحفظ!");

فيكون لديك شكل الكود كامل، بالشكل التالي تقريباً:

            string add_com = "insert into procreational values(@value1, @value2, @value3, @value4)";            SqlCommand add = new SqlCommand(add_com, connection);            add.Parameters.AddWithValue("@value1", comboBox3.Text);            add.Parameters.AddWithValue("@value2", textBox1.Text);            add.Parameters.AddWithValue("@value3", comboBox1.Text);            add.Parameters.AddWithValue("@value4", comboBox2.Text);            int rows = add.ExecuteNonQuery();            if (rows > 0)                MessageBox.Show(" تم إضافه نيابه جديده بنجاح");            else                MessageBox.Show("لم يتم الحفظ!");            textBox1.Text = "";            textBox6.Text = "";            textBox3.Text = "";            comboBox1.Text = "";            comboBox2.Text = "";            comboBox3.Text = "";            comboBox4.Text = "";

بالتوفيق.

0

شارك هذا الرد


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

الأخت هلا السروري:

 

أكثر البرامج تقدم خدماتها بغض النظر عن واجهاتها.

 

أي نستيطع نحن بناء برنامج يشبة الإكسيل [واجهات فقط]، ويكون أساس المعالجة معتمد على مكتبات الإكسيل، فهنا نكون قد تعاملنا مع مكتبات الإكسيل ضمنياً.

وهذا الحال منطبق على أكثر البرمجيات، وأقرب مثال لنا هو نظام التشغيل، فلو أردنا فتح ملف معين، نقوم بالذهاب لمسار ذلك الملف والضغط عليه مرتين فيفتح. لكن ماذا لو أردنا فتح الملف ضمن كود سي شارب مثلاُ:

- نقوم بإضافة المكتبة System.IO ومن ثم نقوم بتحديد مسار الملف وفتحه وقراءته. عن طريق خدمات المكتبة IO.

 

فالتعامل مع الملفات ضمن نظام التشغيل هو عمليه خاصة بنظام التشغيل وليس ببرنامج Notepad أو أي محرر نصوص أخر.

 

فإذا عدنا إلى الإكسيل فإن العملية سواء. فالإكسيل يقدم خدماته بعيداً عن واجهاته، أي نستطيع الإستفادة من كل وظائفه ومهامه ضمن سي شارب عن طريق المكتبة using Microsoft.Office.Interop.Excel

 

مثال صغير: جمع عددين عن طريق Excel Function ضمن سي شارب. وطباعة النتيجة على الشاشة.

1. لإضافة هذه المكتبة إلى المشروع : نذهب إلى Project ثم إلى Add Reference. ثم نبحث عن المكتبة ضمن COM أو Extension. وبعد إضافتها للمشروع، نحن بحاجة لتعريفها ضمن كل كلاس يستخدمها.

2. نقوم بتعريف متغير من نوع Excel Application، بهذه الخطوة نكون قد استدعينا خدمات الإكسيل للعمل معها.

3. نقوم بطلب أي Function موجود ضمن الإكسيل وإعطائة متغيرات وسيقوم هو بمعالجته كما في الإكسيل تماماً وسيرجع لنا بالنتيجة.

 

 البرنامج من نوع Console application، بالطبع يمكنك العمل على أي نوع من مشاريع سي شارب بشرط إضافة المكتبة المذكورة:

using Microsoft.Office.Interop.Word;namespace UsingOfficeAPI{    class Program    {        static void Main(string[] args)        {            Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();            double sum = excelApplication.WorksheetFunction.Sum(1, 2);            Console.WriteLine(sum);        }    }} 

نلاحظ استدعاء Function  الجمع Sum. وبالتالي فإن WorksheetFunction تحتوي على كل الـ Functions، الموجود ضمن الإكسيل.

 

أرجو أن تكوني قد استفدتِ. وإذا كان هناك أي أسئلة فلا تترددي.

 

والله وليُّ التوفيق.

0

شارك هذا الرد


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

مره ثانيه اشكرك على تعاونك أخي طارق..

بخصوص امر قاعده البيانات جاري التجريب ,بس كنت حابه اسأل إذا كان هناك حقل المفروض أن قيمته تزداد تلقائيا مع إدخال كل حقل من دون ان يدخلها المستخدم,,

يعني في المثال السابق على افتراض اني حطيت رقم خاص بكل نيابه يعتبرpk بس المستخدم مش عارف عنه ,كيف اقدر اسويها.

شكرا مقدما.. :)

0

شارك هذا الرد


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

بالطبع هذه من أساسيات تصميم قواعد البيانات.

 

حيث نقوم بوضع حقل Primary Key يسمى غالباً ب Id وهو كما قلتِ تتم زيادة قيمته تلقائياً عن إدخال سطر جديد

والهدف هو تمييز كل سطر عن الأسطر الأخرى.

 

للقيام بذلك، نضيف حقل لتصميم الجدول ونسميه Id من نوع int، ونضع خاصية Allow Nulls إلى False  أي نزيل علامة الصح. ثم نضع هذا الحقل كَ Primary Key. ثم نذهب إلى خصائص هذا الحقل، فنجد خاصية إسمها Identity Specification نقوم بتوسعتها لنجد خاصية تحتها هي  (Is Identity)، تكون No لذلك نقوم بوضعها إلى Yes

 

لكن يجب الإنتباه !

ربما يعترض SQL Server على إضافة حقل جديد للجدول، لذلك نحن بحاجة لتفعيل هذا الخيار من خيارات SQL Server. على كل إذا حصل لديك هذا الخطأ، سنقوم بإصلاحه إن شاء الله.

 

وهناك بعض المفاهيم يجب وضعها في تصميم قاعدة البيانات، للحصول على نتائج أفضل.

 

بالتوفيق.

0

شارك هذا الرد


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

أخي طارق :

هل تقصد بعد وضع الاعدادات السابقه انه سيتم حساب قيمه الid تلقائيا من دون الحاجه الي ان يدخلها المستخدم عند إدخال بقيه البيانات للنيابه على سبيل المثال..

0

شارك هذا الرد


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

أستاذ طارق:

كل الاعدادات الي ذكرتها انا كنت قد حطيتها مسبقا ماعدا

خاصيه Identity Specification,هل هي المسؤوله عن الزياده التلقائيه؟؟

0

شارك هذا الرد


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

ويمكنك التحكم بمقدار الزيادة، إذا كان ذلك يهمك. عن طريق Identity Increment

 

ولا ننسى عند قراءة البيانات من قاعدة البيانات، يجب علينا قراءة حقل الـ Id أيضاً، ونجعلة حقل للقراءة فقط أو حقل مخفي على الواجهة، كونه لا يهم المستخدم وإنما يهمنا نحن في معالجة البيانات، فلو أردنا تعديل أو حذف بيانات سطر معين، نقوم بتحديد ذلك السطر بالجدول عن طريق هذا الـ Id.

 

وإذا كان للجدول علاقة مع جدول أخر، فإن حقل Id الذي هو Primary Key، يصبح في الجدول الأخر عبارة عن Foreign Key. وهو أساس ربط الجداول.

0

شارك هذا الرد


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

أنصحك بقراءة المقالة التالية، حيث ستفيدك في بعض الإعتبارات في تصميم قاعدة البيانات

 

http://arabteam2000-forum.com/index.php/topic/282343-entity-framework-with-wpf-lesson-01/?hl=%2Bwpf#entry1359982

0

شارك هذا الرد


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

جـــــــــــــــــــــــــــــــــــــــــــــــاري الإطلاع,,

 

بس لو سمحت أخي ,في كود الإدخال السابق كانت بعض الحقول لاتقبل اللغه العربيه بمعنى تدخل القيم الي قاعدة البيانات بالشكل التالي(؟؟؟؟؟؟؟؟؟؟)..

مع أني مستخدمه الكنترول نفسه(combobox) في الحقلين,واحد من الحقول يقبل القيمه الموجدوده والثاني لا.. :( ,,ونفس المشكله في ال  textbox ,ايش سبب المشكله؟

سامحني لو شغلتك معايا..
  

0

شارك هذا الرد


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

لا عادي ولا يهمك.

السبب في تعريف نوع الحقل في قاعدة البيانات، فأنت على الأغلب قمت بتعريفه من نوع varchar

لكن إذا أردنا دعم اللغة العربية فعلينا تعريف الحقل المطلوب من نوع nvarchar، والتي تدعم Unicode وبالتالي تدعم اللغة العربية.

0

شارك هذا الرد


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

^__________________________________________^.

 

شكرا أخي...

لو سمحت بخصوص موضوع إني اتعامل ضمنيا مع دوال نظام التشغيل,ممكن أني ابحث عن ملف بإستخدام إسمه بواسطه داله البحث الخاصه بنظام التشغيل؟؟

0

شارك هذا الرد


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

if (name != null)

{

Excel.Application xlApp;

Excel.Workbook xlWorkBook;

Excel.Worksheet xlWorkSheet;

object misValue = System.Reflection.Missing.Value;

xlApp = new Excel.ApplicationClass();

xlWorkBook = xlApp.Workbooks.Add(misValue);

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

xlWorkSheet.Cells[1, 1] = "";

xlWorkBook.SaveAs(name, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

xlWorkBook.Close(true, misValue, misValue);

System.Diagnostics.Process.Start("explorer.exe", "-p");

}

}

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

شارك هذا الرد


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

أخي طارق أولا أعذرني عارفه أني زودت فيها بس معليش إستحملني.. :rolleyes:

ثانيا الكود السابق بيفتح لي ملف أكسل بس فيه  مشاكل:

ماعرفت من فين أخليه يحفظ في المسار الي أحدده أنا,

ويفتح الملف وبعدين يسأل لو اشتيه يحفظ ولا لا,(لأنه هنا بيحفظ الملف تلقائيا ,جربت أعلق جمله الحفظ بس مافي فايده )

ويفتح الملف على طول في النافذه لأنه هنا يفتح المجلد الي حفظ فيه الملف وبعد النقر على الملف بيفتحه..

ومشكووووووووور مقدما :)

0

شارك هذا الرد


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

بسم الله الرحمن الرحيم

فيما يخص البحث عن ملف ضمن نظام التشغيل، فالأمر من أبسط ما يقدمه نظام التشغيل من خدمات. 

لكن يجب توضيح فكرة مهمة، أنظمة التشغيل بالغالب مكتوبة بلغة C وفي بعض تطبيقاتها تستخدم ++C، بالتالي فإن جميع الخدمات التي يقدمها نظام التشغيل عبارة عن مكتبات بلغة C و ++C. فتقوم اللغات عالية المستوى مثل #C أو Java بعمل مكتبات خاصة بها، لتغليف مكتبات نظام التشغيل وبالتالي تعطينا الخدمة بلغتها.

فعندما نتكلم عن التعامل مع الملفات في سي شارب على نظام ويندوز فإن مكتبة System.IO هي تغليف لبعض المكتبات المكتوبة بلغتي C و ++C لتقدم للمستخدم الخدمة باللغة المطلوبة. طبعاً جميع الخدمات التي يقدمها نظام التشغيل بمكتباته تعرف بإسم API : Application Programming Interface. بالتالي تعطينا خدمات لعمل تطبيقات، بينما تسمى كتابة البرامج التي تتكلم مباشرة مع نظام التغشيل أو حتى مع Kernel تسمى ب System Programming.

 

في الكود المعروض لديك في السطر الأخير هناك طلب لخدمة من نظام التشغيل وهي فتح متصفح ويندز. ويسمى هذا الطلب ب System Call ، اي طلب خدمة من نظام التشغيل.

 

أما في ما يخص حفظ الملف، فعادة ضمن سي شارب نقوم بتعريف متغير من نوع SaveFileDialog شبيه بما يظهر لدينا في أغلب البرامج، ونقوم بتعريف مجموعة الملفات التي سيتعامل معها (صيغ الملفات). ونقوم بالتحقق من النتيجة؛ بمعنى هل قام المستخدم بالضغط على زر حفظ أو على زر إلغاء، فإذا كان الناتج حفظ نقوم بحفظ الملف والكتابة عليه.

SaveFileDialog sfd = new SaveFileDialog();            sfd.Filter = "Excel File (*.xlsx)|*.xlsx";            DialogResult result = sfd.ShowDialog();            if (result == System.Windows.Forms.DialogResult.OK)            {                FileStream fileStream = (FileStream)sfd.OpenFile();                // Write data here            }            System.Diagnostics.Process.Start(sfd.FileName);

Filter: يعنى الصيغة التي سيعمل بها، نستيطع تعريف عدد غير منتهي من الصيغ. نكرر نفس الجملة السابقة لكل نوع من الملفات ولكن نفصل بين كل منها بالرمز   |

 

fileStream إذا كانت الكتابة على ملف نصي مثلاً، نستيطع الإستفادة منه. يمكنك كتابة البيانات هنا، مع العلم أن إسم الملف ومساره بالكامل أصبح متوفرا من خلال   sfd.FileName

 

 

All the best.

0

شارك هذا الرد


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

يســـــــــــــــــــــــــــــــــــــلموا أستاذ طارق :)

 

رجعت هذه المره بمجموعة اسئله لو تكرمت جاوبني عليها..

1-كيف أستدعي إجراء مكتوب بلغه ال plsqlمن الc#

2-هل تختلف بنيه جملة الselect,update,deleteعن جمله الإدخال الي عدلت عليها سابقا,,,أقصد بالبنيه طبعا كيفيه إستخدامها في ال c#.

0

شارك هذا الرد


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

كمان سؤال إن شاء الله يكون الأخير... :blush:

في النظام الي اصممه زر يفتح ورقة أكسل ,هل ممكن إني أعمل حاجه تشبه الmaster page في ال web application,بحيث أنه تظل مجموعه من الازرار ظاهره حتى بعد فتح ورقه الأكسل..

تقبــــــــــــــــــــــل جزيل شكــــــــــــــــــري وإمتناني مقدما..

0

شارك هذا الرد


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

نعم أختي الكريمة:

 

لإستدعاء Stored Procedure مكتوب في قاعدة  البيانات من خلال #C. الأمر بسيط علينا بالخطوات التالية:

 

1. بعد أن نعرف Connection String، نقوم بتعريف SqlCommand ونمرر لها إسم الـ Stored Procedure كما هو معرف بقاعدة البيانات، مثلا لنفرض إسم الإجراء TopTenMovies، فنكتب:

 SqlCommand cmd = new SqlCommand("TopTenMovies", connectionString);

2. نحتاج لتعريف نوع Command بأنه ليس Query عادية وإنما اجراء مخزن Stored Procedure

cmd.CommandType = CommandType.StoredProcedure;

3. نقوم بتعريف مجوعة المتغيرات المدخلة لهذا الإجراء، Stored Procedure's Parameters إذا كان الإجراء يحتاج لها. سنفترض أن الإجراء لدينا بحاجة لمتغير إسمة Name

cmd.Parameters.Add(new SqlParameter("@Name", "MyName"));

4. الأن نحن بحاجة لتنقيذه وقراءة الناتج ويتم ذلك عن طريق DataReader

 SqlDataReader dataReader = cmd.ExecuteReader();

فيما يخص Update, Delete, Insert بالطبع يجب مراعاة حالة الكتابة، كون العملية حساسة من ناحية نوع البيانات أو شكل الـ Query.

 

إذا كان موضوع قواعد البيانات والتعامل معها مهم بالنسبة لك، فأنصحك بالبدء بتعلم تقنية LINQ ، لتنتقلي بعدها إلى LINQ To SQL Classes ثم ADO.NET Entity Framework Model.

حيث سيكون التعامل مع قاعدة البيانات قوي وسهل، حيث نقوم فقط بربط قاعدة البيانات مع هذا العنصر الجديد، وهو سيتولى عملية توليد الكلاسات، وإنشاء عمليات Insert, Update, Delete، وكما بإمكانه إيضاً استيراد الإجراءت المخزنة من قاعدة البيانات حيث تصبح ميثود ضمن المشروع، فيصبح استدعاء اجراء مخزن كإستدعاء ميثود سي شارب عادية.

 

الأمر في غاية السهولة، إذا كنت ترين أن مشروعك بحاجة لنوع من الترتيب والسهولة في العمل لك وللبرنامج يمكنك الإنتقال لهذه المفاهيم الجديدة، يمكنني مساعدتك في توضيح بعض النقاط ليصبح الأمر بغاية السهولة.

 

 

بالتوفيق.

0

شارك هذا الرد


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

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

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



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

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

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