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

كيف يمكن تحويل كود عدم التكرار

بدأه مصطفى_ظيمة في 11 نوفمبر 2013 · 16 رد · 3,326 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

اهل المنتدى الرائع الذى تعلمت منه الكثير

لدى مشكلة بسيطة

حيث كنت استخدم هذا الكود فى vb6 لعد تكرار البيانات

	dim Ks As New ADODB.Recordset
		If Ks.State = ADODB.ObjectStateEnum.adStateOpen Then Ks.Close()
		Ks.Open("SELECT * FROM [tb] WHERE  [name] LIKE '%" & Trim(Text2.Text) & "%'", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockPessimistic)
		If Ks.RecordCount > 0 Then
			MsgBox("الاسم موجود مسبقا ؟")
		End If
		
		If MsgBox("هـل تريـد الحفـظ على أى حال ؟", MsgBoxStyle.Question + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.YesNoCancel, "رسالة") = MsgBoxResult.Yes Then

ثم كود الحفظ

حاولت أن احوله إلى  vb 2010  .Net  ولكن لم يفلح

رججاء مساعدتى جزاكم الله خيرا

#2

معقولة 32 مشاهدة


وما فيش رد واحد


ايه الموضوع صعب


انا لم اعهد ذلك فى المنتدى

#3

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

 

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

 

كـ فكرة اول اشي لازم يكون التسلسل (رقم الموظف) لا يقبل التكرار 

 

ثم في جملة سلكت لمن يستعلم عن الاسم ويلاقيه موجود في قاعدة البيانات انه لايسمح لنفس الاسم ان يمتلك رقمين ولو كانو مختلفين مثلا كان في الاول رقمه 1 ومره ثاني كان رقمه 4

 

نفس الاسم له رقمين 1 و 4 يطلع مسج بوكس انه الموظف موجود مسبقا

 

او اعتقد انه في if الشرطيه لازم تحطها بهذا الشكل والله اعلم جربها وشوف

If Ks.RecordCount= Trim(Text2.Text) Then
#4

يبدو أنى ما اعرفتش اوضح طلبى بصورة تصل للجميع

انا مثلا استخدمت هذا الكود ولكن لم يضبط معى نهائياً

 Dim sqlds As New SqlDataAdapter("SELECT name FROM tb WHERE name LIKE '" & Trim$(TextBox2.Text) & "'", con)
        MsgBox("هـذا الاسم موجـود مسبقاً")

        If MsgBox("هـل تريـد الحفـظ على أى حال  ؟", MsgBoxStyle.Question + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.YesNoCancel, "رسالة") = MsgBoxResult.Yes Then

ثم كود الحفظ

هل يمكن التعديل على هذا الكود ؟

#5

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

string s = "'";
  OleDbCommand save = new OleDbCommand();
save.Connection = conn;
 save.CommandType = CommandType.Text;
 string sql = "select count name from salary where name=" + s + TextBox1.Text + s +;
try
                {
                    conn.Open();
                    OleDbCommand ws = new OleDbCommand(sql, conn);
                    f = ws.ExecuteScalar().ToString();
                    textBox6.Text = f; التكست بوكس هنا تضيفه في الفورم عشان بعرض عدد السجلات الي عدها
                    if (textBox6.Text >0)
                    {
                        MessageBox.Show("هذا المستخدم موجود مسبقا");
                    }
                    else
                    {
                        save.ExecuteNonQuery();
                        conn.Close();
                        MessageBox.Show("تمت الاضافة بنجاح");
                     }

هذا قاعدة بيانات اكسس وانت غير تبعك الى اس كيو ال

تم تعديل هذه المشاركة بواسطة الجنـرال في 11 نوفمبر 2013 في 21:09

#6

السلام عليكم ..

    Dim ConnSTR As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\db.mdb;Persist Security Info=False;"
        Dim Connect As New OleDbConnection(ConnSTR)
        Dim Ds As New DataSet
        Dim sqlds As New OleDbDataAdapter("SELECT [name] FROM tb WHERE [name] LIKE '%" & Trim$(TextBox2.Text) & "%'", Connect)
        sqlds.Fill(Ds, "tb")
        If Ds.Tables("tb").Rows.Count > 0 Then
            MsgBox("هـذا الاسم موجـود مسبقاً")
        End If
        Connect.Close()

 انتبه , هل تبحث بالــ Like  أم = 

تم تعديل هذه المشاركة بواسطة حسام الشامي في 11 نوفمبر 2013 في 21:41

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7
حسام الشامي كتب:

السلام عليكم ..

    Dim ConnSTR As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\db.mdb;Persist Security Info=False;"
        Dim Connect As New OleDbConnection(ConnSTR)
        Dim Ds As New DataSet
        Dim sqlds As New OleDbDataAdapter("SELECT [name] FROM tb WHERE [name] LIKE '%" & Trim$(TextBox2.Text) & "%'", Connect)
        sqlds.Fill(Ds, "tb")
        If Ds.Tables("tb").Rows.Count > 0 Then
            MsgBox("هـذا الاسم موجـود مسبقاً")
        End If
        Connect.Close()

 انتبه , هل تبحث بالــ Like  أم = 

شكرا جزيلا  يا اخ حسام الكود اشتغل تمام الحمد لله 

بالنسبة للتنبيه : ابحث بـ Like .. ولكن لماذا ؟

#8

:rolleyes: 

تم تعديل هذه المشاركة بواسطة الجنـرال في 12 نوفمبر 2013 في 20:24

#9
مصطفى_ظيمة كتب:

شكرا جزيلا  يا اخ حسام الكود اشتغل تمام الحمد لله 

بالنسبة للتنبيه : ابحث بـ Like .. ولكن لماذا ؟

عفوا .. عفوا ..

حقيقة , إذا استخدمت  Like  دون استخدام أي من حروف البحث الخاص * ?  فهي تعمل كعمل الــ =

أما لو استخدمت Like  مع % فلا تنسى ان بعض الاسماء في العربية هي جزء من اسماء اخرى مثل "حَمَد"  مع  "حمدون" و "محمد" .. و بالتالي ستحصل على نتائج خاطئة في البحث .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#10
حسام الشامي كتب:

عفوا .. عفوا ..

حقيقة , إذا استخدمت  Like  دون استخدام أي من حروف البحث الخاص * ?  فهي تعمل كعمل الــ =

أما لو استخدمت Like  مع % فلا تنسى ان بعض الاسماء في العربية هي جزء من اسماء اخرى مثل "حَمَد"  مع  "حمدون" و "محمد" .. و بالتالي ستحصل على نتائج خاطئة في البحث .

 

وما الذى تنصحنى به  من واقع خبراتك ؟

#11
مصطفى_ظيمة كتب:

وما الذى تنصحنى به  من واقع خبراتك ؟

استخدم = للبحث المطابق .. إذا كان النظام المطلوب تصميمه يمنع تكرار الاسماء .

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#12
حسام الشامي كتب:

استخدم = للبحث المطابق .. إذا كان النظام المطلوب تصميمه يمنع تكرار الاسماء .

 

ساراعى ذلك ... واشكرك شكرا جزيلا على مساعدتك لى ونصيحتك وشكرا لكل من حاول مساعدتى

 

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

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

مع مراعاة ان هدفى من طرحها هنا ان تساعدنى انت شخصيا فى حلها :)

الراى لك .. فى انتظار ردك وشكرا لك مرة اخرى وجزاكم الله خيرا

#13

أهلا بك صديقي ...

افتح موضوع جديد .. ستجد مساعدة مني و من باقي المشرفين و الاعضاء ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#14
حسام الشامي كتب:

أهلا بك صديقي ...

افتح موضوع جديد .. ستجد مساعدة مني و من باقي المشرفين و الاعضاء ..

 شكرا لك اخ حسام

وشكرا لذوقك

خالص تحياتى

#15

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

#16
un know كتب:

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

صديقي .. الكود يقوم ببساطة بتنفيذ البحث في قاعدة اللبيانات باستخدام ADO.NET  .. راجع المواضيع المثبتة في منتدى :   ADO.NET مثلا :

 الكامل في قواعد البيانات باستخدام VB.NET

 درس في ADO.NET من الصفر إلى الإحتراف .

  درس في ADO.NET 2005

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#17

شكرا جزيلا أخي الكريم

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