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

تكرار السجلات

بدأه حزين36 في 26 مايو 2009 · 13 رد · 876 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذه اول مشاركة لي بهذا الصرح التعليمي الرائع

اشعر بالخجل قليلاً لان اول مشاركة لي ستبداء بسوأل بسبب قلة خبرتي لكوني حديث مع تقنية asp.net ولغة c#

سوألي هو

قمت بعمل صفحة انترنت عنطريق asp.net و c# تحتوي على فورم يطلب من المستخدم ادخل رقم شخصي لكي تخزنه في قاعدة بينات access.mdb طبعاً ان قمت بتهية قاعدة البينات لكي لا يتم تكرار الرقم الشخصي في القاعدة اي لا يوجد رقمان شخصيان متشابهان في القاعدة

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

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

ارجوا من اهل المنتدى ان يرشدوني لكود c# او asp.net يساعدني للقيام بتلك المهمة

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

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.OleDb;

oledb

using System.Data;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, System.EventArgs e)

{

}

protected void Button1_Click(object sender, System.EventArgs e)

{

string str = Server.MapPath("MyDB");

OleDbConnection con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + str + ".mdb");

OleDbCommand com = new OleDbCommand("insert into Emp (ID) values (@ID)", con);

com.Parameters.AddWithValue("@ID", TextBox1.Text);

if (con.State ==ConnectionState.Closed)

{

con.Open();

}

com.ExecuteNonQuery();

con.Close();

}

}

تم تعديل هذه المشاركة بواسطة حزين36 في 26 مايو 2009 في 03:30

#2

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

اذا كنت عملت حقل ID AutoNumber فلا تحتاج لإدخال قيمة فقط ادخل باقي البيانات وسيتم توليد الرقم وحفظه تلقائيا في قاعدة البيانات

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

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#3

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

ما اقدصده حقل اسمه ID نوع بيناته Text ولكن اريد ان ادخل فيه الارقم الشخصية التي توجد في البطاقة المدنية للموظف ومن المعروف ان هذا الرقم لا يتكرر

تم تعديل هذه المشاركة بواسطة حزين36 في 26 مايو 2009 في 03:31

#4

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

المثال المرفق يبسط لك الفكرة حاول تطبيقه

وإذا كان هناك أي جزء غامض فلا تتردد في السؤال

بالتوفيق أخي

CheckUserID.rar

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#5

ان كنت تريد عمل Exception Handling بحيث اذا حدث خطأ يمكنك احتوائه و عرض رسالة للمستخدم تفيد ذلك

استخدم try catch block

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

#6

جزاكم الله خير يا شباب اسف على ردي المتئخر بسب انشغالي بالعمل سوف اطبق ومن ثم اوافيكم بالنتائج

#7

لقد قمت بأعدة صياغة اكواد مشروعي مستنداً للمشروع الذي انت قمت برفعه على المنتدى ولكن بأئت المحاولة بالفشل المشكلة عندما اقوم بعملية Build للموقع لا تظهر اخطاء و تعمل الصفحة ولكن عن ادخال الرقم الشخصي ID والضغط على زر لكري ارسل لقاعدة البينات تظهر رسالة خطاء تحتوي على التالي

Line 33: //Checks the query`s result

Line 34: //cmd.ExecuteScalar() Will have a value only if the ID is already stored in the database.

Line 35: if (com.ExecuteScalar() == null)

Line 36: {

Line 37: Response.Write("Insert Command is fired");

وهذا كود مشروعي حالياً بعد التعديل

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Data.OleDb;

using System.Data;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, System.EventArgs e)

{

}

protected void Button1_Click(object sender, System.EventArgs e)

{

if (TextBox1.Text.Trim() != string.Empty)

{

string str = Server.MapPath("LabourDatabase");

OleDbConnection con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + str + ".mdb");

OleDbCommand com = new OleDbCommand("insert into LDB (ID) values (@ID)", con);

com.Parameters.AddWithValue("@ID", TextBox1.Text);

com.Connection = con;

//Checks the query`s result

//cmd.ExecuteScalar() Will have a value only if the ID is already stored in the database.

if (com.ExecuteScalar() == null)

{

Response.Write("Insert Command is fired");

}

else

Response.Write("This ID is already exist!");

com.Connection.Close();

con.Close();

}

else

Response.Write("Please enter your the User ID");

}

}

تم تعديل هذه المشاركة بواسطة حزين36 في 26 مايو 2009 في 15:53

#8

يجماعة اللي عندة حل لمشكلتي يفيدني ولو بالبسيط

#9

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

رجاء كتابة رسالة الخطأ التي تظهر لك

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

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#10

المشروع في المرفقات ارجوا ان تخبرني ما يجب اضافته عليه

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

LabourDatabase.rar

تم تعديل هذه المشاركة بواسطة حزين36 في 26 مايو 2009 في 21:53

#11

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

#12

السلام عليكم

أخي الكريم قمت بأضافة Exception Handling

المشروع موجود في المرفقات

LabourDatabase.rar

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#13

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

سوف ارى المشروع الان

#14

الحمد لله الموضوع ظبيت وكل شي تمام جزاك الله خير على ماقدمت

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