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

[تنبيه - عنوان غير مناسب : ]طلب مساعدة من اهل الخبرة

بدأه bnshacker في 8 أبريل 2010 · 17 رد · 1,001 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجو مساعدتي في الكود التالي

اريد اضافة حقل المدينة مع منع تكرار الاسم في قاعدة البيانات

الكود الذي وضعته للاضافة هو

 protected void Button2_Click(object sender, EventArgs e)
        { 
    string City = Textcity.Text;




        System.Data.SqlClient.SqlConnection dataConnection = new SqlConnection(); 
        dataConnection.ConnectionString =
            @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\championship.mdf;Integrated Security=True;User Instance=True"; 

        System.Data.SqlClient.SqlCommand dataCommand = new SqlCommand(); 
        dataCommand.Connection = dataConnection;



        dataCommand.CommandText = ("INSERT into City (City_name) VALUES (@City)"); 


        dataCommand.Parameters.AddWithValue("@City", City); 


        dataConnection.Open(); 
        dataCommand.ExecuteNonQuery(); 

}
    }
}

مع جزيل الشكر

تم تعديل هذه المشاركة بواسطة bnshacker في 8 أبريل 2010 في 01:17

#2

اخي لقد نسيت في الاستعلام into

1
#3

اخي الكريم شكرا جزيلا على الرد لقد عدلت الاستعلام

لكن المشكلة في منع التكرار عند الاضافة هل عندك فكرة عن كيفية فعل ذلك

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

ما اريده هو عند ادخال اسم المدينة اكثر من مرة اعطاء رسالة بان الاسم موجود ويمنع الاضافة مرة اخرى

الف شكر لك

#4

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

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

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#5

عذرا اخي طارق

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

على اي حال شكرا على التنبيه

#6


(
@cityname nvarchar(50)

)

AS
declare @numberoft int
begin
set @numberoft=(SELECT COUNT(*)
FROM City
WHERE (name = @cityname))

if @numberoft=0 and @cityname <> ''
begin
INSERT INTO City
(City_name)
VALUES (@cityname)
end
end
create PROCEDURE insertcities

انشا اجراء يتحقق من امكانية التكرار

In bad state

#7

في حالة استخدامك لل Stored Procedure يمكنك عمل جملة SELECT سريعة للتحقق من عدم وجود القيمة و اذا كانت موجودة استخدم Return 20 علي سبيل المثال و تقوم داخل الكود بفحص القيمة العائدة فان كانت 20 فتظهر رسالة ان القيمة مكررة

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

ملحوظة في حالة التعديل يجب اضافة شرط الي where clause لاستثناء ال Current Row

#8

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

IF NOT EXISTS (SELECT * FROM [City] WHERE [City_name] = @City) INSERT INTO [City] ([City_name]) VALUES (@City)

تم تعديل هذه المشاركة بواسطة moh_kin في 8 أبريل 2010 في 09:14

ASP.NET Team Leader

moh_kin_mah@hotmail.com

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

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

#9
moh_kin كتب:

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

IF NOT EXISTS (SELECT * FROM [City] WHERE [City_name] = @City) INSERT INTO [City] ([City_name]) VALUES (@City)

اشكرك اخ محمد واحمد

بالمناسبة اخ محمد هل يمكننا اعطاء المستخدم تغذية بانه لا يمكنه الاضافة كون القيمة مكررة

وبالمناسبة سؤال

return افضل الا output

بتمنى الاجابة

In bad state

#10

الاخوة الكرام

جزاكم الله خير على ردودكم لكن مشكلتي اني مبتدأ في asp فيرجى التوضيح اكثر

بعد القيام بانشاء Procedure كيف اربطه مع زر الاضافة ؟؟

اخي محمد كيف اعدل الاستعلام الى ما تفضلت بذكره

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

#11

جرب هالملف :wink:

cityuniq.rar

1

In bad state

#12
AsJsGle كتب:

جرب هالملف :wink:

السلام عليكم

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

الله يجزاك خير

#13

اهلا صديقي نحنا لبعض :)

In bad state

#14
AsJsGle كتب:

اهلا صديقي نحنا لبعض :)

بدي اتاقل عليك كمان مرة

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

ALTER  PROCEDURE insertteam 
(
@teamname nvarchar(50),@cityid int


)       
AS
declare @numberoft int
begin
set @numberoft=(SELECT        COUNT(*)                 FROM            teams                 WHERE        (Team_Name = @teamname))
if @numberoft=0 and @teamname <> ''begin
INSERT INTO teams  (Team_Name,city_id)VALUES     (@teamname,@cityid)
end
select @numberoft
end

بعدين عدلت الكود كالتالي

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Web.Configuration;


namespace WebApplication3
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }


        private SqlCommand insertteam(string team,string city)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "insertteam";
            cmd.Parameters.AddWithValue("@teamname", team);
            cmd.Parameters.AddWithValue("@cityid", city);
            return cmd;

        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            string costr = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection conn = new SqlConnection(costr);
            SqlCommand cmd = insertteam(Textteam.Text,DropDownList1.SelectedValue);



            try
            {
                conn.Open();

                int? numOfRecords = cmd.ExecuteScalar() as int?;

                if (numOfRecords == 0)
                {
                    Label1.ForeColor = System.Drawing.Color.Yellow;
                    Label1.Text = string.Format("تم إضافة إسم الفريق");

                }
                else if (numOfRecords == 1)
                {
                    Label1.ForeColor = System.Drawing.Color.Yellow;
                    Label1.Text = string.Format("إسم الفريق موجود في قاعدة البيانات");
                }
            }
            catch (Exception exp)
            {
                Label1.Text = string.Format("Error: {0}", exp.Message);
            }
            finally
            {
                conn.Close();
                GridView1.DataBind();
            }
        }
    }
}

المشكلة عند التنفيذ لا يوجد اي خطأ ولكن عند الادخال يعطي الخطأ التالي

Error: ExecuteScalar: Connection property has not been initialized

يا ريت تساعدني بالحل

الف شكر

#15
AsJsGle كتب:

اشكرك اخ محمد واحمد

بالمناسبة اخ محمد هل يمكننا اعطاء المستخدم تغذية بانه لا يمكنه الاضافة كون القيمة مكررة

وبالمناسبة سؤال

return افضل الا output

بتمنى الاجابة

أظن لو أردت أن تعطي المستخدم تغذية حول عدم إمكانية الإضافة فيمكنك إما عمل IF - THEN - ELSE في أمر الاستعلام ... أو إجراء عمل استعلام مستقل وهو

SELECT * FROM [City] WHERE [City_name] = @City

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

واعذرني لم أفهم return افضل الا output

ASP.NET Team Leader

moh_kin_mah@hotmail.com

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

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

#16

صديقي هيك بتوقع متل ما بدك شوف الصفحتين

وحدة لاضافة مدينة

ووحدة لاضافة فريق

اخ محمد انا قصدي عن

return value and output parameter

cityuniq.rar

In bad state

#17
AsJsGle كتب:

صديقي هيك بتوقع متل ما بدك شوف الصفحتين

وحدة لاضافة مدينة

ووحدة لاضافة فريق

اخ محمد انا قصدي عن

return value and output parameter

يا سيدي الله يعطيك الف عافية

والله ما عارف كيف بدي كافيك

الف شكر

#18

بسيطة الله يسامحك يا رجل :)

In bad state

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

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

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

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

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