تقييم الموضوع :
  • 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 هو الحل الصحيح و لكن يجب إزاله الهجمة مع ذكر إسم العمود
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  حل مشكلة الكود الاتي - سهل- CLARO 3 71 02-12-16, 04:06 PM
آخر رد: ali.alfoly
  [SQL] ماهو سبب هذا الخطأ بعد تثبيت SQL thevirus 2 57 30-11-16, 08:34 PM
آخر رد: ابو ليلى
  ما هو الخطاء فى هذا الكود "كود التعديل" السيد الجوهري 1 62 26-11-16, 03:22 AM
آخر رد: أبو عمر
  ماهو كود انقاص كميه المباعه من الكميه الموجوده معتز الجازوي 1 55 22-11-16, 09:16 PM
آخر رد: السرور
  [VB.NET] ربط الداتا بيز بالكريستال ريبورت عن طريق الكود thevirus 3 93 22-11-16, 02:38 PM
آخر رد: thevirus
  [VB.NET] طلب تعديل ع الكود ليصبح البرنامج جاهزاً 3asfa~mdmra 8 188 12-11-16, 02:30 AM
آخر رد: 3asfa~mdmra
  [سؤال] هل يمكن عرض عناصر الكومبوبوكس عن طريق الكود ؟؟؟؟؟؟؟؟؟؟؟؟ thevirus 1 95 10-11-16, 06:25 PM
آخر رد: أبو عمر
  كود لحساب عدد تكرار الاحرف hano 4 125 08-11-16, 06:49 AM
آخر رد: silverlight
  [سؤال] تكرار الضغط في مكان ما في الشاشه Test 8 126 06-11-16, 07:09 PM
آخر رد: silverlight
  كيف اضيف هذا الكود في module nabil.1710 6 122 01-11-16, 03:23 PM
آخر رد: silverlight

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


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