• 0
مصطفى_ظيمة

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

سؤال

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

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

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

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

حيث كنت استخدم هذا الكود فى 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  ولكن لم يفلح

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

16 إجابة على هذا السؤال .

  • 0

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


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


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


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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

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

 

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

 

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

 

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

If Ks.RecordCount= Trim(Text2.Text) Then
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

 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ثم كود الحفظ 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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("تمت الاضافة بنجاح");                     }

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

تم تعديل بواسطه الجنـرال
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

    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  أم = 

تم تعديل بواسطه حسام الشامي
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

    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 .. ولكن لماذا ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

:rolleyes: 

تم تعديل بواسطه الجنـرال
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

وشكرا لذوقك

خالص تحياتى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

  درس في ADO.NET 2005

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .