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

إختبار وجود المهمة مسبقاً

بدأه -الأمل- في 25 يونيو 2011 · 12 رد · 606 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أريد أن اضيف مهمة...عند الضغط على زر الإضافة أريد أن يختبر وجود اسم المهمة مسبقاً إذا وجدها مسبقاً يعطيني رسالة إن الإسم مستخدم ومايضيف هذا الكود:

 SqlConnection sql = new SqlConnection();
        string sqly;
        SqlCommand cmd;
        SqlDataReader re;
        sql.ConnectionString = ConfigurationManager.ConnectionStrings["Connectionstring2"].ConnectionString;
        sqly = "SELECT Tasks.Task_Name,Subprojects.Subproject_Id,FROM Projects INNER JOIN Subprojects ON Projects.Project_Id = Subprojects.Project_Id INNER JOIN Tasks ON 

Subprojects.Subproject_Id = Tasks.SubProject_Id WHERE Subprojects.Subproject_Id='" + DropDownList2.SelectedItem.Value + "'";
        cmd = new SqlCommand(sqly, sql);
        sql.Open();
        re = cmd.ExecuteReader();
        while (re.Read())
        {


            Label1.Text = "اسم المهمة موجود مسبقاً";
            sql.Close();

        }

هنا الإستعلام من الجداول( المشروع -قائمة المشاريع الفرعية- المهمة) بحيث المشروع به أكثر من قائمة مشاريع فرعية...وقائمة المشاريع الفرعية فيها أكثر من مهمة)

يظهر هذا الخطأ

تفاصيل الاستثناء: System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'FROM'.

كود الإضافة ضبط ولله الحمد...بس بعد إضافة دا الكود ماااشتغل..هذا كود الإضافة

  {


            sql.Open();
            string sqlquery = "insert into Tasks(Task_Name,Description,Start_Task,End_Task,Task_Type,Completion_Task,SubProject_Id,Member_Id,Group_Id)values(@Task_Name,@Description,@Start_Task,@End_Task,@Task_Type,@Completion_Task,@SubProject_Id,@Member_Id,@Group_Id)";
            SqlCommand cm = new SqlCommand(sqlquery, sql);
            cm.Parameters.Add("@Task_Name", txtTaskName.Text);
            cm.Parameters.Add("@Description", txtTaskDescription.Text);
            cm.Parameters.Add("@Start_Task", txtStartDate.Text);
            cm.Parameters.Add("@End_Task", txtEndDate.Text);
            cm.Parameters.Add("@Task_Type", DropDownList1.SelectedItem.Value);
            cm.Parameters.Add("@Completion_Task", DBNull.Value);
            cm.Parameters.Add("@SubProject_Id", DropDownList2.SelectedItem.Value);
            if (DropDownList3.Visible)
            {
                cm.Parameters.Add("@Member_Id", DropDownList3.SelectedItem.Value);
                cm.Parameters.Add("@Group_Id", DBNull.Value);
            }

            else if (DropDownList4.Visible)
            {
                cm.Parameters.Add("@Member_Id", DBNull.Value);
                cm.Parameters.Add("@Group_Id", DropDownList4.SelectedItem.Value);
            }
            cm.ExecuteNonQuery();
            sql.Close();
        }
#2

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

المشكلة على يسار كلمة FROM وهي الفاصلة(,) ..... لأنها تفصل بين الحقول وFROM ليست حقل....

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#3

شكراً أخي الكريم....

لكن ظهرت مشكلة أخرى:

لم يتم إغلاق الاتصال. حالة الاتصال الحالية هي مفتوح

ولقد أغلقت الإتصال في الكود أعلاه

#4

لان كود اغلاق الاتصال موجود داخل الحلقة while

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#5

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

اختي جربي الكود التالي بدلا من حلقة ال while


if(re.HasRows)
Label1.Text = "اسم المهمة موجود مسبقاً";
sql.Close();

.:: Wish to become better and better ::.

#6

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

يظهر نفس الخطأ: يوجد بالفعل DataReader مفتوح مقترن بهذا الأمر ويجب أن يتم إغلاقه أولاً.؟

#7

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

اختي ممكن تكتب كود الاجراء كاملا؟!!

.:: Wish to become better and better ::.

#8

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

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

     protected void Button2_Click(object sender, EventArgs e)
    {
        string project_id = Request.QueryString["pr_Id"];
        SqlConnection sql = new SqlConnection();
        string sqly;
        SqlCommand cmd;
        sql.ConnectionString = ConfigurationManager.ConnectionStrings["Connectionstring2"].ConnectionString;
        sqly = "SELECT Tasks.Task_Name FROM Subprojects INNER JOIN Tasks ON Subprojects.Subproject_Id = Tasks.SubProject_Id WHERE (Subprojects.Subproject_Id = @sub) AND (Tasks.Task_Name = @task)";
        cmd = new SqlCommand(sqly, sql);
        cmd.Parameters.Add("@sub",DropDownList2.SelectedItem.Value);
        cmd.Parameters.Add("@task",txtTaskName.Text);
        sql.Open();
        SqlDataReader re = cmd.ExecuteReader();
        if (re.HasRows)
        {
            Label1.Text = "اسم المهمة موجود مسبقاً";
            sql.Close();

        }




        else
        {
            string sqlquery = "insert into Tasks(Task_Name,Description,Start_Task,End_Task,Task_Type,Completion_Task,SubProject_Id,Member_Id,Group_Id)values(@Task_Name,@Description,@Start_Task,@End_Task,@Task_Type,@Completion_Task,@SubProject_Id,@Member_Id,@Group_Id)";
            SqlCommand cm = new SqlCommand(sqlquery, sql);
            cm.Parameters.Add("@Task_Name", txtTaskName.Text);
            cm.Parameters.Add("@Description", txtTaskDescription.Text);
            cm.Parameters.Add("@Start_Task", txtStartDate.Text);
            cm.Parameters.Add("@End_Task", txtEndDate.Text);
            cm.Parameters.Add("@Task_Type", DropDownList1.SelectedItem.Value);
            cm.Parameters.Add("@Completion_Task", DBNull.Value);
            cm.Parameters.Add("@SubProject_Id", DropDownList2.SelectedItem.Value);
            if (DropDownList3.Visible)
            {
                cm.Parameters.Add("@Member_Id", DropDownList3.SelectedItem.Value);
                cm.Parameters.Add("@Group_Id", DBNull.Value);
            }
#9

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

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

.:: Wish to become better and better ::.

#10

وعليكم السلام ورحمة الله وبركاته.... datareader هل من المفترض إغلاقها؟؟

طيب دحين الذي أريده أن يختبر وجود المهمة task في قائمة المشاريع الفرعيةsubproject عملت هذا الإستعلام:

   
    protected void Button2_Click(object sender, EventArgs e)
    {

 string project_id = Request.QueryString["pr_Id"];
        SqlConnection sql = new SqlConnection();
        string sqly;
        SqlCommand cmd;
        sql.ConnectionString = ConfigurationManager.ConnectionStrings["Connectionstring2"].ConnectionString;
        sqly = "SELECT Tasks.Task_Name FROM Subprojects INNER JOIN Tasks ON Subprojects.Subproject_Id = Tasks.SubProject_Id WHERE (Subprojects.Subproject_Id = @sub) AND (Tasks.Task_Name = @task)";
        cmd = new SqlCommand(sqly, sql);
        cmd.Parameters.Add("@sub",DropDownList2.SelectedItem.Value);
        cmd.Parameters.Add("@task",txtTaskName.Text);
        sql.Open();
        SqlDataReader re = cmd.ExecuteReader();
        if (re.HasRows)
        {
            Label1.Text = "اسم المهمة موجود مسبقاً";
            sql.Close();

        }

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

ممكن أعرف الخطأ في هذا الكود..وشكراً

#11
-الأمل- كتب:

وعليكم السلام ورحمة الله وبركاته.... datareader هل من المفترض إغلاقها؟؟

طيب دحين الذي أريده أن يختبر وجود المهمة task في قائمة المشاريع الفرعيةsubproject عملت هذا الإستعلام:

   
    protected void Button2_Click(object sender, EventArgs e)
    {

 string project_id = Request.QueryString["pr_Id"];
        SqlConnection sql = new SqlConnection();
        string sqly;
        SqlCommand cmd;
        sql.ConnectionString = ConfigurationManager.ConnectionStrings["Connectionstring2"].ConnectionString;
        sqly = "SELECT Tasks.Task_Name FROM Subprojects INNER JOIN Tasks ON Subprojects.Subproject_Id = Tasks.SubProject_Id WHERE (Subprojects.Subproject_Id = @sub) AND (Tasks.Task_Name = @task)";
        cmd = new SqlCommand(sqly, sql);
        cmd.Parameters.Add("@sub",DropDownList2.SelectedItem.Value);
        cmd.Parameters.Add("@task",txtTaskName.Text);
        sql.Open();
        SqlDataReader re = cmd.ExecuteReader();
        if (re.HasRows)
        {
            Label1.Text = "اسم المهمة موجود مسبقاً";
            sql.Close();

        }

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

ممكن أعرف الخطأ في هذا الكود..وشكراً

تم تعديل الكود إلى التالي:

       protected void Button2_Click(object sender, EventArgs e)
    {
        string project_id = Request.QueryString["pr_Id"];
        SqlConnection sql = new SqlConnection();
        string sqly;
        SqlCommand cmd;
        sql.ConnectionString = ConfigurationManager.ConnectionStrings["Connectionstring2"].ConnectionString;
        sqly = "SELECT Tasks.Task_Name FROM Subprojects INNER JOIN Tasks ON Subprojects.Subproject_Id = Tasks.SubProject_Id WHERE (Subprojects.Subproject_Id = @sub) AND (Tasks.Task_Name = @task)";
        cmd = new SqlCommand(sqly, sql);
        cmd.Parameters.Add("@sub",DropDownList2.SelectedItem.Value);
        cmd.Parameters.Add("@task",txtTaskName.Text);
        sql.Open();
        SqlDataReader re = cmd.ExecuteReader();
        if (re.HasRows)
        while(re.Read())
        {

            Label1.Text = "اسم المهمة موجود مسبقاً";



        }



        else
        {
            string sqlquery = "insert into Tasks(Task_Name,Description,Start_Task,End_Task,Task_Type,Completion_Task,SubProject_Id,Member_Id,Group_Id)values(@Task_Name,@Description,@Start_Task,@End_Task,@Task_Type,@Completion_Task,@SubProject_Id,@Member_Id,@Group_Id)";
            SqlCommand cm = new SqlCommand(sqlquery, sql);
            cm.Parameters.Add("@Task_Name", txtTaskName.Text);
            cm.Parameters.Add("@Description", txtTaskDescription.Text);
            cm.Parameters.Add("@Start_Task", txtStartDate.Text);
            cm.Parameters.Add("@End_Task", txtEndDate.Text);
            cm.Parameters.Add("@Task_Type", DropDownList1.SelectedItem.Value);
            cm.Parameters.Add("@Completion_Task", DBNull.Value);
            cm.Parameters.Add("@SubProject_Id", DropDownList2.SelectedItem.Value);
            if (DropDownList3.Visible)
            {
                cm.Parameters.Add("@Member_Id", DropDownList3.SelectedItem.Value);
                cm.Parameters.Add("@Group_Id", DBNull.Value);
            }

            else if (DropDownList4.Visible)
            {
                cm.Parameters.Add("@Member_Id", DBNull.Value);
                cm.Parameters.Add("@Group_Id", DropDownList4.SelectedItem.Value);
            }
            Label1.Text = "تم إضافة المهمة بنجاح";
            re.Close();
            cm.ExecuteNonQuery();
            sql.Close();
        }


        }

تم إغلاق datareader قبل cm.ExecuteNonQuery();

وبعد if (re.HasRows)

وضعت

while(re.Read())

{

Label1.Text = "اسم المهمة موجود مسبقاً";

وشكراً

#12

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

اختي كان الاجراء ناقصا في السابق!! المهم انك توصلتي للحل .. بالتوفيق ..

.:: Wish to become better and better ::.

#13

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

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