الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

رائج
بدأه shmookh في 10 ديسمبر 2013 · 93 رد · 6,371 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#26

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

 

لإستدعاء 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، وكما بإمكانه إيضاً استيراد الإجراءت المخزنة من قاعدة البيانات حيث تصبح ميثود ضمن المشروع، فيصبح استدعاء اجراء مخزن كإستدعاء ميثود سي شارب عادية.

 

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

 

 

بالتوفيق.

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#27

إن شاء الله أخي,,, تسلــــــــــــــــــــــــــــــــــــــــــم...

بس مارديت علي بموضوع ال master page>> :(

#28

أخي الإجراء يقوم بإعاده قيمه..كيف ؟

هل ستوجد هذه القيمه في DataReader وإن كان,كيف يمكنني الحصول عليها حتى استخدمها..

#29

DataReader يستخدم إذا كان القيمة المرجعة Object مثلا Product  كامل فيه أكثر من حقل

لكن بالعموم بعد تنفيذ الإجراء يمكن قراءة القيمة المرجعة بالشكل التالي، بفرض أننا نقراأ قيمة مرجعة إسمها Price

string retunvalue = (string)cmd.Parameters["@Price"].Value;

هناك العديد من الطرق، يمكن استخدامها حسب الحاجة.

 

بخصوص Master Page. ورقة الإكسل أين تفتح، بنفس الواجهة الخاص ببرنامجك، أم يفتح كبرنامج اكسيل مستقل؟

بشكل عام هناك Control ضمن سي شارب يدعى Tab Control، يساعدنا في عمل شيء يشبه Master Page حيث نقوم بتعريف العناصر الأساسية على الواجهة ووضع هذا العنصر في المنتصف، فتصبح العناصر الباقية مرئية لجميع واجهات هذا الـ Tab Control، إن كان هذا ما تريدين بالضبط؟

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#30
Eng.Tareq Jehad

لك منا جزيل الشكر وعظيم الامتنان

ما تتخيل كيف كانت اجاباتك مفيده لنا

سامحنا على كثر الاسئله بس معلوماتنا ضئيله نوعا ما :mellow:

شكرا ثم شكرا ثم شكرا :)

:) دائما دع الأمر للخالق :)

#31

con.Open();

string log = "SELECT usname,uspass FROM users WHERE uspass=@val and usname=@val1";

SqlCommand cmd = new SqlCommand(log, con);

cmd.Parameters.AddWithValue("@val", textBox2.Text.Trim());

cmd.Parameters.AddWithValue("@val1", textBox1.Text);

SqlDataReader dr = cmd.ExecuteReader();

string login = textBox1.Text;

string pwd = textBox2.Text;

if (dr != null)

{

mainform form = new mainform();

form.MdiParent = this.MdiParent;

this.Hide();

form.Show();

}

else

{

MessageBox.Show("خطأ في إسم المستخدم أو كلمة المرور");

}

}

#32

السلام عليكم أخي طارق...

بعد الشـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــكــر,,

لوسمحت الكود السابق كود لواجهة التأكد من إسم المستخدم وكلمة السر ,,,بس المشكله انه بيدخل على الواجهه التاليه,حتى لو كانت القيم خاطئه أو غير موجوده اصلا في قاعده البيانات فين المشكله؟؟..

_______________________________________________________

 

:blush: :blush: :blush:  كود إستدعاء إجراء يطلع لي فيه خطاء أن الاجراء مش موجود مع اني كتبته؟؟؟ليش؟

سؤال أخير عندي مؤشرات رياضيه بعد حسابها المفروض يعطيني رسم بياني لها .مثل الي في الاكسل,_وإنت قلت انه ممكن استخدم الدوال ضمنيا_ الســـــــــــــــؤال هو ايش الدوال الي ممكن استخدمها؟؟

سامحني على كثرة أسئلتي (باقي أسئله بس للمره القادمه :D) ...

#33

أخي الكريم ..

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

#34
أختي الكريمة

 

مرحباً بالأسئلة في أي وقت [وأما السائل فلا تنهر]

لكن أرجو أن يتم التفريق بين السؤال وبين المشاكل البرمجية، ففي عالم البرمجة المشاكل لا حصر لها، وهي نتيجة تصور خاطئ لما نحن بحاجته ولما نقوم بتطبيقه.

 

على العموم.

1. Master Page السؤال غير واضح!!!!! بالأصل نحن كان تعاملنا على أساس مكتبات الإكسيل بعيداً عن واجهاته، الأن تريدين فتح ورقة الإكسيل!!! ما هو المطلوب بالضبط.؟ مع العلم أن مفهوم Master Page يمكن تطبيقه ضمن Windows Application عن طريق تصميم واجهة أساسية وجعل الواجهات الأخرى ترث منها.

 

2. بالنسبة لعدم التحقق من إسم المستخدم وكلمة المرور. فالسبب هو التحقق الخاطئ!  فجملة  SqlDataReader dr = cmd.ExecuteReader();، محققة  دائماً، بمعنى dr لا يكون NULL لكن في حالة لم يتم العثور على البيانات يكون فارغ،  NULL  !=  EMPTY  . لذلك نحن بحاجة للتحقق من محتوى الـ  Reader، مثلاً عن طريق ()dr.Read والتي ترجع لنا متغير منطقي bool يكون true في حال كان هناك بيانات.

 

3. الرسم البياني أولا وأخيرا هو تخاطب مع كرت الشاشة. سواء عن طريق إكسيل أو غيره، لكن نحن نسلك الطريق الأسهل حتى ولو كان الإكسيل يساعدنا في ذلك، فهناك مئات مكتبات #C التي تقدم لنا مئات الأنواع من الأشكال، ويوجد عنصر جاهز ضمن ToolBox إسمه Chart ضمن الـ Data. تلك المكتبات تزودنا بالعديد من العناصر المشابه، وكل ما علينا فعله هو تزويدها بمجموعة البيانات المراد رسمها.

 

إليك الرابط التالي، يحتوي على شرح وفيه مكتبات لرسم البيانات.


 

With best wishes

تم تعديل هذه المشاركة بواسطة Eng.Tareq Jehad في 19 ديسمبر 2013 في 00:47

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#35

أخي طارق تسلم على ذوقك وتواضعك وتعاملك الراقي ,مشكلة التحقق من إسم المستخدم وكلمة المرور الحمد لله حليتها  بهذا الكود

 if (textBox1.Text == "" && textBox2.Text == "")
                MessageBox.Show("الحقول فارغه");
            else
                if (textBox1.Text == "" | textBox2.Text == "")
                    MessageBox.Show("أحدالحقول فارغه");

                else
                {

                    con = new SqlConnection(@"Data Source=NORHAN-PC\SQLEXPRESS;Initial Catalog=data;Integrated Security=True");
                    con.Open();
                    string log = "SELECT [uspass],[usname] FROM [users] WHERE" +
              " (([usname] = @Username) AND ([uspass] = @Password))";

                    SqlCommand cmd = new SqlCommand(log, con);
                    cmd.Parameters.AddWithValue("@password", textBox2.Text.Trim());
                    cmd.Parameters.AddWithValue("@username", textBox1.Text.Trim());
                    SqlDataReader dr = null;
                    if (con.State == ConnectionState.Closed || con.State == ConnectionState.Broken)
                        con.Open();
                    dr = cmd.ExecuteReader();
                    dr.Read();
                    if (dr != null)
                    {
                        try
                        {
                            string un = Convert.ToString(dr["usname"]);
                            string up = Convert.ToString(dr["uspass"]);
                            if (un == textBox1.Text && up == textBox2.Text)
                            {
                                mainform f = new mainform();
                                f.MdiParent = this.MdiParent;
                                f.Show();
                                this.Hide();
                            }


                        }

                        catch (Exception ex)
                        {

                            MessageBox.Show("خطأ في إسم المستخدم أو كلمة المرور");
                        }

                }
#36

طبعا في حال انه عندك اي تعديل لتحسين الefficiency كلي أذان صاغيه....

 

بالنسبه لكود الإجراء عرفت اني كنت اكتبه في المكان الخاطيء,بس لما جيت اكتبه في مكانه الصحيح كان يطلع لي أخطاء عند الحفظ (عارفه ان الاخطاء بسبب تصريحات خاطئه وهيكل الداله نفسها),فلو تكرمت ممكن تعطيني مثال وتشرح لي عشان اعرف فين خطأي لأني كنت اكتبها على اساس الي درسته بس البرنامج نفسه كاتب هيكل للداله مختلف عن الي درسته وماعرفت افهمه :blush: ..

موضوع فتح أكسل اصلا انا عادني ماأستقريت على ايش اشتي بالضبط,,في البدايه كنت اشتي افتح ضمن نظامي ورقة اكسل بس تكون من ضمن النظام نفسه يعني اول مايخرج من النظام تتقفل ورقه الاكسل,وكمان تظهر في حجم وموقع معين على اساس أنها ماتحجب ازرار النظام (عشان كذا سألتك على Master Page).

امس سألت استاذ عندنا في الجامعه وقال انه بإمكاني اني ابني نظام اكسيل من جديد او اخد الدوال الي احتاجها لدرجه انه ممكن اصمم الsheet نفسها من غير الازرار الي تابعه لها يعني ازرار التنسيقات وادراج وما الي ذلك (هذا الي احتااااااااااااااجه فعلا)-بإستخدام using microsoft.office.interop.excel_واستخدمها ضمن نظامي ,بس هو مش متذكر كيف ممكن تساعدني..

#37

بالنسبة للتحقق من المستخدمين:


طريقة كتابة الكود السابق، تعمل لكن تخلط الكثير من المفاهيم، وهو ما يصعب علينا عملية تحسين الكود أو تطوير المشروع في أوقات لاحقة.


لذلك انتبهي لكيفة التعامل الصحيح مع قاعدة البيانات في المثال البسيط التالي, وحاولي أن تكملي باقي العمليات على نفس الأساس.


 


1. نقوم بعمل كلاس جديد ضمن مشروعنا ونسميه مثلاً BusinessLogic وهو ما سيتولى مهمة التخاطب بين واجهات المشروع [المستخدم] وبين قاعدة البيانات، ويؤمن لنا تواصل صحيح مع تزويدنا بمجموعة الأخطاء المحتملة، من قيم خاطئة إلى الفشل في التعامل مع قاعدة البيانات،


2. نقوم بتعريف المتغيرات الأساسية للتعامل مع قاعدة البيانات فيه، لكي نتجنب تعريفها في اي منطقة أخرى، مثل ConnectionString, Connection, Command، لذلك سيكون لدينا شكل الكلاس حالياً كالتالي:


 public class BusinessLogic

    {        

        SqlConnection connection;

        SqlCommand cmd;

        string connectionString = @"Data Source=NORHAN-PC\SQLEXPRESS;Initial Catalog=data;Integrated Security=True";        

        string query = "";


        public BusinessLogic()

        {

            connection = new SqlConnection(connectionString);

        }

    }

هكذا نكون وفرنا كتابة الكود السابق في جميع أجزاء المشروع الأخرى.


 


3. الآن نحن بحاجة لكتابة الـ Methods الخاصة بطلب البيانات من قاعدة البيانات من قاعدة البيانات، لذلك سنكتب الميثود الخاصة بالتحقق من معلومات المستخدم، [الكلام هنا بعيد عن الواجهات وعن عناصرها، وعن طريق عرض الراسائل].


 public void VerifyUser(string userName, string password)

        {

            if (string.IsNullOrWhiteSpace(userName))

                throw new Exception("حقل إسم المستخدم فارغ! أدخل إسم صحيح");

            if (string.IsNullOrWhiteSpace(password))

                throw new Exception("حقل كلمة المرور فارغ! أدخل كلمة صحيحة");


            query = "SELECT * FROM [User] WHERE UserName = @userName AND Password = @password";


            cmd = new SqlCommand(query, connection);

            cmd.Parameters.AddWithValue("@userName", userName);

            cmd.Parameters.AddWithValue("@password", password);

            connection.Open();

            SqlDataReader reader = cmd.ExecuteReader();

            if (!reader.Read())

            {

                connection.Close();

                throw new Exception("مستخدم غير صحيح! \nإسم المستخدم أو كلمة المرور خاطئة");

            }


            connection.Close();

        }

هنا، نرسل لهذه الميثود إسم المستخدم وكلمة المرور، ونقوم بالتحقق فيما إذاكان إسم المستخدم فارغ أو عبارة مسافات بيضاء، وكذلك بالنسبة لكلمة المرور، وفي حال كان ذلك نقوم برمي خطأ للمستخدم [Exception]، الواجهة فيما بعد مسؤولة عن التقاط هذا الخطأ وعرضه للمستخدم.


ثم قمنا بعمل الخطوات الأساسية بالإتصال مع قاعدة البيانات وطلب بيانات مستخدم من جدول المستخدمين، وقمنا بقراء البيانات بواسطة DataReader، وفي حال لم يكن هناك معلومات ()!reader.Read ، نقوم برمي خطأ اخر وهو أن معلومات المستخدم خاطئة، ولا ننسى أننا قمنا بإغلاق الإتصال مع قاعدة البيانات مرتين، مرة في حال نجاح العملية ومرة في حال فشلها، لضمان إغلاقه في الحالتين.


 


4. الآن كل ما علينا هو توظيف هذا الكلاس مع عمل الواجهات. لنذهب إلى كود الواجهة الخاصة بالدخول للنظام، ونقوم بتعريف object   من كلاس BusinessLogic في أعلى الكلاس لنتمكن من استخدامه في كامل كود الواجهة كالتالي:


BusinessLogic logic = new BusinessLogic();

        public LoginForm()

        {

            InitializeComponent();

        }

5. الآن نذهب لحدث الضغط على الزر الخاص بالدخول Login ونكتب الكود البسيط التالي:


        private void btnLogin_Click(object sender, EventArgs e)

        {

            try

            {

                logic.VerifyUser(txtUserName.Text, txtPassword.Text);

                // Open Other Window Here>

                MessageBox.Show("تم التحقق بنجاح");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

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


 


بعد التجربة ستلاحظِ الفائدة الكبيرة من وراء هذا العمل. لذلك جربيها واخبريني بالناتج.


تم تعديل هذه المشاركة بواسطة Eng.Tareq Jehad في 19 ديسمبر 2013 في 13:32

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#38

أما بخصوص بناء الإكسيل ضمن سي شارب.

 

فإمكاننا بناء نظام تشغيل كامل مع كل تطبيقاته بواسطة سي شارب أو أي لغة أخرى، لكن الأمر يتوقف على درجة تعقيد العمل.

لكن ما يهمنا هو إتمام مشروعنا بالشكل الصحيح، لذلك كيف نستطيع عرض صحفة إكسيل ضمن واجهة سي شارب Windows Application، بحيث تظهر ونتعامل معها كأي عنصر أخر مثل TextBox مثلاً:

 

1. نقوم بالذهاب إلى Toolbox ونضغط بالزر اليمين عليه ثم نختار Choose Items

2. من الأعلى نختار COM Components

3. نبحث عن المكون Microsoft Office Spreadsheet، نضع علامة الصح بجانبها ثم نضغط على موافق.

4. الآن أصبح لدينا عنصر خاص بصفحة الإكسيل، فقط علينا إضافته إلى الواجهة كأي عنصر آخر. فيكون لدينا الشكل التالي:

 

IFKnzcV.png?1

 

ربما تواجهي بعض الأخطاء عند محاولة تشغيل البرنامج والسبب في إختلاف نسخة العنصر الجديد عن نسخة النظام والـ Visual Studio، لكن إن حصل معك خطأ معين، أخبريني حتى نصلحه بسرعة.

 

بالتوفيق

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#39

أيوه أخي طلع معي خطاء هذي الرساله ظهرت لي,,

 failed to import the activex control. please ensure it is properly registered

#40

جاري العمل بنصائحك المتعلقه بعملية الربط بقاعده البيانات...

#41

نعم

 

>> أولاً نقوم بإضافة المكتبة msdatasrc.dll.

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

C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies

نقوم بإضافتها إلى المشروع.

 

>> ثانياً ربما يكون نسخة bit 64 غير متوافقة مع هذا العنصر لذلك نذهب إلى خصائص المشروع،

1. نذهب إلى Project ثم إلى Properties بآخر القائمة، في النافذة التي تفتح من الخيار Build يوجد خيارات لـ Platform target نقوم بإختيار Prefer 32-bit ونحفظ العمل.

 

...Regards

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#42

^______________________________^

 

يسلمواااااااااا..

كانت ظهرت مشكله لنفس السبب الي قلته بس مالقيت خيارPrefer 32-bit,إخترت

build -> Platform Target = x86

واشتغل الكنترول من غير مشاكل..

#43

السلام عليـــــــــكم أخي طارق..

لو تكرمت ممكن تساعدني في حل هذه المشاكل...

1-عملت الي قلت لي عليه ونقلت كل اكواد التعامل مع قاعده البيانت الي ال class الجديد ,بس المشكله انه اكواد كانت تشتغل تمام واكواد لا ,مع انه لها نفس الوظيفه مثلا (إدخال ) وماغيرت فيها الا اسم الجداول والحقول ,فين المشكله,من تصميم الجدول نفسه في قاعده البيانات؟؟؟

2- ال spreadsheet ممكن انه تستقبل بيانات من excel وتصدر بيانات الى قاعدة البيانات؟؟ لو أيوه ممكن لو سمحت تعطيني روابط تشرح هذا الموضوع  , بحثت ومالقيت..

3-الcrystal report هل ممكن انه يعتمد عل نتيجة إستعلام يقوم بها المستخدم,بمعنى هل يستطيع المستخدم انه يظهر الجداول  والاعمده الي يريدها هو .

#44

أخي مشكله الادخال إتعالجت,,طلعت المشكله بس (عــــــــــــــــــــــــــــــــــــــــــــــــــدم تركيز :wacko: :wacko: :wacko: ),,

كنت ماأركز على إختلاف اسماء المتغيرات...

#45

:blush: :blush:

Double result = 0;
             query = "SELECT [acheived],[import_during_year] FROM [prosecution] WHERE  pname = @name1 And year=@year1";

             cmd = new SqlCommand(query, connection);
             cmd.Parameters.AddWithValue("@name1", name);
             cmd.Parameters.AddWithValue("@year1",year);
             connection.Open();
             SqlDataReader dr = cmd.ExecuteReader();
             if (dr.Read())
            {
               Double result1 = Convert.ToDouble(dr[1]);
               //Double result2 = Convert.ToDouble(dr[1]);


                result = result1 ;// result2;

أخي طارق الاستعلام السابق المفروض انه يرجع قيمتين ,بس بيرجع قيمه واحده فقط الي هي import_during_year. ليش؟؟الثانيه تقريبا يعتبرها nullمع انها موجوده في الجدول الاساسي.

#46

هذا الكود الاساسي,, الكود السابق عملت لبعض الجمل تعليق حتى اعرف ايش الاعمده الي تظهر..وكمان dr[2] ;كانت تظهر رسالة خطاء ان القيمه null

query = "SELECT [acheived],[import_during_year] FROM [prosecution] WHERE  pname = @name1 And year=@year1";

             cmd = new SqlCommand(query, connection);
             cmd.Parameters.AddWithValue("@name1", name);
             cmd.Parameters.AddWithValue("@year1",year);
             connection.Open();
             SqlDataReader dr = cmd.ExecuteReader();
             if (dr.Read())
            {
               Double result1 = Convert.ToDouble(dr[1]);
               Double result2 = Convert.ToDouble(dr[2]);


                result = result1 / result2;
           
             }

تم تعديل هذه المشاركة بواسطة هلا السروري في 21 ديسمبر 2013 في 13:07

#47
هلا السروري كتب:

:blush: :blush:

Double result = 0;
             query = "SELECT [acheived],[import_during_year] FROM [prosecution] WHERE  pname = @name1 And year=@year1";

             cmd = new SqlCommand(query, connection);
             cmd.Parameters.AddWithValue("@name1", name);
             cmd.Parameters.AddWithValue("@year1",year);
             connection.Open();
             SqlDataReader dr = cmd.ExecuteReader();
             if (dr.Read())
            {
               Double result1 = Convert.ToDouble(dr[1]);
               //Double result2 = Convert.ToDouble(dr[1]);


                result = result1 ;// result2;

أخي طارق الاستعلام السابق المفروض انه يرجع قيمتين ,بس بيرجع قيمه واحده فقط الي هي import_during_year. ليش؟؟الثانيه تقريبا يعتبرها nullمع انها موجوده في الجدول الاساسي.

 

ما هي حقول الجدول بالترتيب؟ وما الذي تريدين بالضبط جلبه من هذا الجدول ( سطر واحد أو أكثر)؟؟؟

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#48

اريد جلب سطر واحد فقط,,

لماذا تسأل عن ترتيب الحقول هل تؤثر على نتيجة الاستعلام,,كنت اعتقد ان الحقول تظهر بنفس الترتيب التي كتبت به في الاستعلام

تم تعديل هذه المشاركة بواسطة هلا السروري في 21 ديسمبر 2013 في 16:07

#49

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

 

انت قمت بقراءة قيمتين [acheived],[import_during_year] ضمن Reader بالتالي الـ Indexing يبدأ من الصفر بالنسبة لل Reader وليس للجدول، بالتالي فإن قيمة [2]dr، غير موجودة، فيجب أن يبدأ العد من الصفر. [1]dr و [0]dr

أو تقومين بقراة سطر كامل بإستخدام *، هكذا تكون طريقتك صحيحة.

 

  • ولإستخدام أفضل لل  Reader قومي بعمل casting للقيمة المقروءة عوضا عن تحويلها convert. بمعني إذا كانت القيمة من نوع double  ضمن Reader نقوم بقراءتها بالشكل: [double d = (double)dr[0

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#50

أستــــــــــــــــــــــــــــــــــــــــــــــــــــــاذ طارق,,,

لــــــــــــــــــو سمحت,,

- ال Axspreadsheet ممكن انه تستقبل بيانات من excel وتصدر بيانات الى قاعدة البيانات؟؟ لو أيوه ممكن لووووو سمـــــــــــحـــــــــــــــــت تعطيني روابط تشرح هذا الموضوع  , بحثت ومالقيت..

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…