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

ماهو الخطأ فى هذا الكود

بدأه أميرة عز الدين في 2 مارس 2011 · 6 رد · 692 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
SqlConnection sc = new SqlConnection(@"Data Source=MATTAREK-PC;Initial Catalog=school_project;Integrated Security=True");
                sc.Open();

                SqlCommand scm = new SqlCommand();
                scm.CommandType=CommandType.StoredProcedure;
                scm.Connection = sc;
                scm.CommandText = "regist_into";
                scm.Parameters.Add(@"usernam", SqlDbType.VarChar, (50)).Value = Txt_usertnam.Text;
                scm.Parameters.Add(@"pass", SqlDbType.VarChar, (50)).Value = Txt_pass.Text;
                int i = scm.ExecuteNonQuery();

                if (i > 0)
                {
                    MessageBox.Show("مية مية");
                }

                else
                { MessageBox.Show("هذا الإسم غير مسجل"); }
                sc.Close();

حيث أن المتغير i دوما لا يخرج إلا بنتيجة صفر فقط

#2

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

الكود ليس فيه خطأ برمجي وإنما الخطأ متمثل بالأداة المستخدمة لتنفيذ الاستعلام فأنت قمت باستخدام التالي :

int i = scm.ExecuteNonQuery();

ExecuteNonQuery لا يعيد اي قيمة يستخدم لتنفيذ استعلامات الحذف والتعديل والادخال ..........

أما إن أردتي اعادة قيمة ما فعليك باستخدام إما ExecuteScalar أو ExecuteReader

حيث أن scalar يعيد قيمة وحيد يعني رقم او اسم او عنوان اوو .......... خلية واحدة من الجدول في قاعدة البيانات

أما reader فيعيد أكثر من قيمة مثلا سطر كامل من قاعدة البيانات او حتى يعيد جدول كامل أي أكثر من سطر وأكثر من عمود

1

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#3

أنا هقول لحضرتك فكرتى وتقدر تقيم الكود بناء عليها

دا نظام دخول

فعاوزة أتحقق من أن اليوزرنيم والباس مخزن فى قاعدة البيانات أو لا

فاستخدمت int i = scm.ExecuteNonQuery();

بحيث أنها لو رجعتلى صفر يبقى اليوزر نيم والباس غير مخزنين

ولو رجعتلى حاجة تانية غير الصف يبقى اليوزر نيم والباس مخزنين

لكن مش عارفة ليه دوما المتغير بيرجع بالصفر سواء كان اليوزر نيم والباس مخزنين أو لا

#4

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

اختى

زى ما قال الاخ Tammam_KD

ExecuteNonQuery

دى تستخدم فى حالة ادخال جديد او تعديل سابق او حذف

اما فى حالة التاكد من وجود قيمة

ExecuteScalar

او

ExecuteReader

و علشان اقولك ايه اللى ينفع معاكى

هات ال regist_into

علشان نشوفها و نقولك ايه الصج

1
#5

أختي الكريمة طالما أنه نظام للتحقق من وجود المستخدم من عدم وجوده ...... فغليك التالي :

قومي باستخدام ExecuteScalar وقومي بوضع الاستعلام التالي ضمن السورد بروسيجر الخاصة بك

select UserID from Users where name =@name and password= @password

فإذا كانت القيمة المعادة null فالمستخدم غير موجود في قاعدة البيانات ......... أما لو تم اعادة UserID فالمستخدم موجود مسبقا

1

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#6

أنا شاكرة جدا لحضراتكم

أنا عملتها فعلا وبقت ماشية معايا كويس

#7

الرجاء كتابة ال SQL تبع ال StoredProcedure

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