تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] ماهو الكود لمنع تكرار الاسم المتشابه في العمود
#1
السلام عليكم

اليكم الكود لتعبئة الكومبوبوكس بس اريد كود لمنع الاسم المتشابهة من التكرار في الكومبوبوكس
كود :
Dim cmd As New OleDbCommand
       Dim reader As OleDbDataReader
       cmd = New OleDbCommand("select * from table1", cn)
       cn.Open()
       reader = cmd.ExecuteReader
       While reader.Read
           ComboBox1.Items.Add(reader.Item(2))
       End While

       cn.Close()
   End Sub
حيث distinct لم ينفع معي
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام

distinct تنفع اذا عرفت طريقة SQL
في مثالك لا تنفع distinct مع النجمة
كود :
Using daa As New OleDbDataAdapter("SELECT DISTINCT [column1] FROM [table1]", cn)
    Dim dtt As New DataTable
    daa.Fill(dtt)
    ComboBox1.Items.AddRange((From x In dtt.Rows Select x.Item("column1")).ToArray)
End Using

غير column1 باسم الحقل المطلوب قراءته
الرد }}}
تم الشكر بواسطة: هاوي1995
#3
إستخدم شرط  مثلا
PHP كود :
           If ListBox1.Items.Contains(h) = False Then
                ListBox1
.Items.Add(h)
 
           End If 
غير الليست بوكس الى كومبوبوكس.
h=القيمة المعادة من الجدول.


PHP كود :
 While reader.Read
If combobox1.items.contains(reader.Item(2))=false then
 ComboBox1
.Items.Add(reader.Item(2))
End If
 End While 
الرد }}}
تم الشكر بواسطة: ممدوح , ممدوح
#4
(27-09-16, 02:41 AM)HASAN6.0 كتب :
كود :
Dim cmd As New OleDbCommand
       Dim reader As OleDbDataReader
       cmd = New OleDbCommand("select * from table1", cn)
       cn.Open()
       Dim list As New List(Of String)
       reader = cmd.ExecuteReader
       While reader.Read
           list.Add(reader.Item(2))
       End While

       cn.Close()
       list = list.Distinct().ToList()
       ComboBox1.DataSource = list

كووووووود رائع وكان يحقق لي المطلوب
بس للاسف لم يعمل معيولم تظهر اي بيانات في الكومبوبوكس

(27-09-16, 02:10 AM)ممدوح كتب : وعليكم السلام

distinct  تنفع اذا عرفت طريقة SQL
في مثالك لا تنفع distinct مع النجمة
كود :
Using daa As New OleDbDataAdapter("SELECT DISTINCT [column1] FROM [table1]", cn)
   Dim dtt As New DataTable
   daa.Fill(dtt)
   ComboBox1.Items.AddRange((From x In dtt.Rows Select x.Item("column1")).ToArray)
End Using

غير column1 باسم الحقل المطلوب قراءته

كووود رهيب بس من يوم شفت داتا ادبتر كاني شفت صاعقة امامي وبصراحة بحاول بقدر الامكان ابتعد عن
dataAdapter
daa.fill

(27-09-16, 06:31 AM)سعود كتب : إستخدم شرط  مثلا
PHP كود :
           If ListBox1.Items.Contains(h) = False Then
                ListBox1
.Items.Add(h)
 
           End If 
غير الليست بوكس الى كومبوبوكس.
h=القيمة المعادة من الجدول.


PHP كود :
 While reader.Read
If combobox1.items.contains(reader.Item(2))=false then
 ComboBox1
.Items.Add(reader.Item(2))
End If
 End While 

على حسب فهمي ان هذا كود شرط منع اي اسم او قيمة مشابهة في الكومبوبوكس ولكن وين اضع كودك في كودي
وهل لي ان استغني عن كودي الاول او ادمج كودي مع كودك بصراحة صرت نفس التايه
الرد }}}
تم الشكر بواسطة:
#5
(27-09-16, 10:26 PM)هاوي1995 كتب :
(27-09-16, 02:10 AM)ممدوح كتب : وعليكم السلام

distinct  تنفع اذا عرفت طريقة SQL
في مثالك لا تنفع distinct مع النجمة
كود :
Using daa As New OleDbDataAdapter("SELECT DISTINCT [column1] FROM [table1]", cn)
   Dim dtt As New DataTable
   daa.Fill(dtt)
   ComboBox1.Items.AddRange((From x In dtt.Rows Select x.Item("column1")).ToArray)
End Using

غير column1 باسم الحقل المطلوب قراءته

كووود رهيب بس من يوم شفت داتا ادبتر كاني شفت صاعقة امامي وبصراحة بحاول بقدر الامكان ابتعد عن
dataAdapter
daa.fill

ايش مشكلتك مع dataAdapter و daa.fill
لو تعرفها بوضوح تجدها انها تعني connection + command + datareader + load

عموما لن أزعجك بها بعد ذلك! وأعتذر عن الصاعقة التي أصابتك بسبب الكود.
الرد }}}
تم الشكر بواسطة:
#6
(27-09-16, 10:54 PM)ممدوح كتب :
(27-09-16, 10:26 PM)هاوي1995 كتب :
(27-09-16, 02:10 AM)ممدوح كتب : وعليكم السلام

distinct  تنفع اذا عرفت طريقة SQL
في مثالك لا تنفع distinct مع النجمة
كود :
Using daa As New OleDbDataAdapter("SELECT DISTINCT [column1] FROM [table1]", cn)
   Dim dtt As New DataTable
   daa.Fill(dtt)
   ComboBox1.Items.AddRange((From x In dtt.Rows Select x.Item("column1")).ToArray)
End Using

غير column1 باسم الحقل المطلوب قراءته

كووود رهيب بس من يوم شفت داتا ادبتر كاني شفت صاعقة امامي وبصراحة بحاول بقدر الامكان ابتعد عن
dataAdapter
daa.fill

ايش مشكلتك مع dataAdapter و daa.fill
لو تعرفها بوضوح تجدها انها تعني connection + command + datareader + load

عموما لن أزعجك بها بعد ذلك! وأعتذر عن الصاعقة التي أصابتك بسبب الكود.

يا ممدوح مشكلتي اني مبتدئ وفي بدايتي كرهوني استخدام تلك الادوات
والمبتدئ اذا تعقد من شي يشوفه صعب كثير حتى ولو كان سهل
لن تزعجني يعني ما راح تشارك في مواضيعي؟؟!!!!!! ما نستغنى عن اي شخص نحن وبالعكس وجودك ومشاركتك في مواضيعي تزداد نورا وحتى بتلك الاكواد التي اعتبرها صاعقة فقد يستفيد شخص اخر غيري .... فبارك الله فيك وفي علمك وزادك بركة وعلما
الرد }}}
تم الشكر بواسطة: ممدوح , ممدوح
#7
ذكرت أنني لن أزعجك بها وكلمة (بها) تعود الى dataAdapter و daa.fill
أي أنني لن أكتب لك عنها في الأكواد فقط لعدم رغبتك بها.

أما توضيحها كونك مبتدأ فهي:
DataAdapter هي الكل في واحد يعني انها تقوم بالأتي:
تقوم بدلا عنك بفتح الاتصال
ثم تنفذ جملة SQL
ثم تجلب البيانات وتعبئها في DataTable في الذاكرة بواسطة الأمر Fill
ثم تقوم بدلا عنك بتغلق الاتصال

وبالنسبة Fill فزيادة في التوضيح فهي تقوم بتعبئة جدول سواء DataTable أو DataSet مع تحديد الجدول من DataSet
لأن DataSet هي قاعدة بيانات مؤقتة وليست جدول وبامكانها أن تحتوي على عدة جداول
وتتميز DataTable وDataSet بالسرعة لأن بياناتها موجودة بالذاكرة
وبالامكان البحث في بياناتها بسهولة بواسطة Linq

أما إذا كنت تريد تستخدم Command للقراءة
فيتعين عليك الأتي:
أن تقوم أنت بفتح الآتصال
ثم تنفذ جملة SQL
ثم تقرأ أنت البيانات وتضعها بمتغيرات أو أدوات أو حتى DataTable.
ثم تقوم أنت بغلق الاتصال.

عموما ما أن تتعرف على DataAdapter و Fill حتى أجدك تستخدمها دائماً
ولا تستغني عنها إلا بما هو أفضل منها مثل Linq to Dataset والتي لن ترى فيها DataAdapter ولا Fill ولا حتى Command
الرد }}}
تم الشكر بواسطة: هاوي1995 , Amir_Alzubidy , سعود
#8
إقتباس :على حسب فهمي ان هذا كود شرط منع اي اسم او قيمة مشابهة في الكومبوبوكس ولكن وين اضع كودك في كودي

وهل لي ان استغني عن كودي الاول او ادمج كودي مع كودك بصراحة صرت نفس التايه
كودي هو كودك فقط عدل على كودك  ليكون مثل كودي  Smile
الرد }}}
تم الشكر بواسطة: هاوي1995 , هاوي1995 , HASAN6.0 , HASAN6.0 , ممدوح , ممدوح
#9
(27-09-16, 01:27 AM)هاوي1995 كتب : السلام عليكم

اليكم الكود لتعبئة الكومبوبوكس بس اريد كود لمنع الاسم المتشابهة من التكرار في الكومبوبوكس
كود :
Dim cmd As New OleDbCommand
       Dim reader As OleDbDataReader
       cmd = New OleDbCommand("select * from table1", cn)
       cn.Open()
       reader = cmd.ExecuteReader
       While reader.Read
           ComboBox1.Items.Add(reader.Item(2))
       End While

       cn.Close()
   End Sub
حيث distinct لم ينفع معي

Distinct هو الحل الصحيح و لكن يجب إزاله الهجمة مع ذكر إسم العمود
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 169 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 264 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 193 20-02-24, 12:00 AM
آخر رد: Kamil
  معرفة عدد مرات تكرار الاسم في الداتاقريدفيو صالح عبدالله 8 426 05-02-24, 04:39 PM
آخر رد: صالح عبدالله
  [VB.NET] منع تكرار البيانات في عند الادخال مبرمج صغير 1 2 255 24-01-24, 05:18 PM
آخر رد: مبرمج صغير 1
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 206 19-01-24, 12:42 PM
آخر رد: Taha Okla
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 464 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify
  [VB.NET] ماهو اسم هذه الازرار ( + موجب و - سالب ) h2551996 1 249 19-12-23, 10:29 PM
آخر رد: justforit
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 431 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  طريقة جلب صف من قاعدة البيانات بشرط العمود ٤ لا يساوي فارغ Adel27213 2 423 07-11-23, 05:02 AM
آخر رد: Adel27213

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم