منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] كود لعدم تكرار اكثر من حقل معا في فيجوال - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] كود لعدم تكرار اكثر من حقل معا في فيجوال (/showthread.php?tid=22214)



كود لعدم تكرار اكثر من حقل معا في فيجوال - محمد المصري - 23-10-17

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


RE: كود لعدم تكرار اكثر من حقل معا في فيجوال - حريف برمجة - 23-10-17

(23-10-17, 01:47 AM)محمد المصري كتب : قاعدة بيانات بها حقلين  رقم وسنة واريد عدم تكرار الحقلين معا عند ادخال البيانات في الفيجوال
تم عمل الحقلين مفتاح اساسي في قاعدة البيانات ولكن اريد كود في الفيجوال لعدم تكرار الحقلين معا

المهم كله في جملة الاستعلام :


كود :
sql = "select fid,fyear from table1 where fid=@fid and fyear=@fyear"

لو موجود حيرجع بقيمة 1 ولو مش موجود يرجع 0


RE: كود لعدم تكرار اكثر من حقل معا في فيجوال - Rabeea Qbaha - 23-10-17

(23-10-17, 01:47 AM)محمد المصري كتب : قاعدة بيانات بها حقلين  رقم وسنة واريد عدم تكرار الحقلين معا عند ادخال البيانات في الفيجوال
تم عمل الحقلين مفتاح اساسي في قاعدة البيانات ولكن اريد كود في الفيجوال لعدم تكرار الحقلين معا

كود :
Public Function UserEx(ByVal number As integer , ByVal year As integer) As Boolean
       Dim correct_version As Boolean = False
       Dim command As New SqlCommand("SELECT id FROM table WHERE number= @number and year=@year", SQL.conn)
command.Parameters.AddWithValue("@number", number)
command.Parameters.AddWithValue("@year", year)
       'فحص الاتصال بقاعدة البيانات
       If SQL.conn.State = ConnectionState.Open Then
           SQL.conn.Close()
       End If
       SQL.conn.Open()
       Using reader As SqlDataReader = command.ExecuteReader
           While reader.Read
               If IsDBNull(reader("id")) Then
                   correct_version = False
               Else
                   correct_version = True
               End If
           End While
       End Using

       SQL.conn.Close()
       Return correct_version
   End Function

و قم باستخذان الكود الاتي للتاكد اذا موجود او لا 


كود :
If UserEx(number.Text, year.text) = True Then
msgbox("yes")
else
msgbox("NO")
           End If



RE: كود لعدم تكرار اكثر من حقل معا في فيجوال - محمد المصري - 23-10-17

[quote pid='107951' dateline='1508710852']

المهم كله في جملة الاستعلام :


كود :
sql = "select fid,fyear from table1 where fid=@fid and fyear=@fyear"

لو موجود حيرجع بقيمة 1 ولو مش موجود يرجع 0
[/quote]
شكرا لحضرتك بس دي جملة استعلام انا عايزها تكون جملة شرط قبل تنفيذ كود الحفظ لو حقلين تم ادخالهم من قبل يظهر رسالة انا معايا كود حقل واحد

(23-10-17, 04:39 PM)Rabeea Qbaha كتب :
(23-10-17, 01:47 AM)محمد المصري كتب : قاعدة بيانات بها حقلين  رقم وسنة واريد عدم تكرار الحقلين معا عند ادخال البيانات في الفيجوال
تم عمل الحقلين مفتاح اساسي في قاعدة البيانات ولكن اريد كود في الفيجوال لعدم تكرار الحقلين معا

كود :
Public Function UserEx(ByVal number As integer , ByVal year As integer) As Boolean
       Dim correct_version As Boolean = False
       Dim command As New SqlCommand("SELECT id FROM table WHERE number= @number ", SQL.conn)
command.Parameters.AddWithValue("@number", number)
command.Parameters.AddWithValue("@year", year)
       'فحص الاتصال بقاعدة البيانات
       If SQL.conn.State = ConnectionState.Open Then
           SQL.conn.Close()
       End If
       SQL.conn.Open()
       Using reader As SqlDataReader = command.ExecuteReader
           While reader.Read
               If IsDBNull(reader("id")) Then
                   correct_version = False
               Else
                   correct_version = True
               End If
           End While
       End Using

       SQL.conn.Close()
       Return correct_version
   End Function

و قم باستخذان الكود الاتي للتاكد اذا موجود او لا 


كود :
If UserEx(number.Text, year.text) = True Then
msgbox("yes")
else
msgbox("NO")
           End If
شكرا لحضرتك جاي التنفيذ لكن معذرة استفسار بسيط ممكن كتابة الكود بطريقة أخرى بدون استخدام الدالة


RE: كود لعدم تكرار اكثر من حقل معا في فيجوال - Rabeea Qbaha - 23-10-17

(23-10-17, 04:40 PM)محمد المصري كتب : [quote pid='107951' dateline='1508710852']

المهم كله في جملة الاستعلام :


كود :
sql = "select fid,fyear from table1 where fid=@fid and fyear=@fyear"

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

(23-10-17, 04:39 PM)Rabeea Qbaha كتب :
(23-10-17, 01:47 AM)محمد المصري كتب : قاعدة بيانات بها حقلين  رقم وسنة واريد عدم تكرار الحقلين معا عند ادخال البيانات في الفيجوال
تم عمل الحقلين مفتاح اساسي في قاعدة البيانات ولكن اريد كود في الفيجوال لعدم تكرار الحقلين معا

كود :
Public Function UserEx(ByVal number As integer , ByVal year As integer) As Boolean
       Dim correct_version As Boolean = False
       Dim command As New SqlCommand("SELECT id FROM table WHERE number= @number ", SQL.conn)
command.Parameters.AddWithValue("@number", number)
command.Parameters.AddWithValue("@year", year)
       'فحص الاتصال بقاعدة البيانات
       If SQL.conn.State = ConnectionState.Open Then
           SQL.conn.Close()
       End If
       SQL.conn.Open()
       Using reader As SqlDataReader = command.ExecuteReader
           While reader.Read
               If IsDBNull(reader("id")) Then
                   correct_version = False
               Else
                   correct_version = True
               End If
           End While
       End Using

       SQL.conn.Close()
       Return correct_version
   End Function

و قم باستخذان الكود الاتي للتاكد اذا موجود او لا 


كود :
If UserEx(number.Text, year.text) = True Then
msgbox("yes")
else
msgbox("NO")
           End If
شكرا لحضرتك جاي التنفيذ لكن معذرة استفسار بسيط ممكن كتابة الكود بطريقة أخرى بدون استخدام الدالة
[/quote]

صديقي هي الداله التي تريحك من عبئ اعاده كتابه الكود في كل مره 
اذا مواجه صعوبه في فهمها سابسطها لك 
الاشياء الواجب تغيرها هي :
إقتباس :"SELECT id FROM table WHERE number= @number and year=@year", SQL.conn

id : المفتاح الاساسي
number : اسم العمود الذي يحتوي على الرقم 
year : اسم العمود الذي يحتوي على السنة


فقط هذه الاشياء يجب تغيرها في الكود الاول في جمله الاستعلام 

وأيضا في الباراميتر 
إقتباس :command.Parameters.AddWithValue("@number", number)
command.Parameters.AddWithValue("@year", year)
قم بتغير number و year 
باسماء الاعمده 


أذا اردت قم بتحميل المثال وساقوم بأضافتها لك


RE: كود لعدم تكرار اكثر من حقل معا في فيجوال - zaer - 23-10-17

إذا عملت الحقلين مفتاح اساسي ما راح يقبل الاضافة من قاعدة البيانات وراح تطلع رسالة خطأ تبين ذلك.

وأنا مع ما قال أخي ربيع Rabeea (صديقي هي الداله التي تريحك من عبئ اعاده كتابه الكود في كل مره)