منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كود لعدم تكرار اكثر من حقل معا في فيجوال
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
قاعدة بيانات بها حقلين  رقم وسنة واريد عدم تكرار الحقلين معا عند ادخال البيانات في الفيجوال
تم عمل الحقلين مفتاح اساسي في قاعدة البيانات ولكن اريد كود في الفيجوال لعدم تكرار الحقلين معا
(23-10-17, 01:47 AM)محمد المصري كتب : [ -> ]قاعدة بيانات بها حقلين  رقم وسنة واريد عدم تكرار الحقلين معا عند ادخال البيانات في الفيجوال
تم عمل الحقلين مفتاح اساسي في قاعدة البيانات ولكن اريد كود في الفيجوال لعدم تكرار الحقلين معا

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


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

لو موجود حيرجع بقيمة 1 ولو مش موجود يرجع 0
(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
[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
شكرا لحضرتك جاي التنفيذ لكن معذرة استفسار بسيط ممكن كتابة الكود بطريقة أخرى بدون استخدام الدالة
(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 
باسماء الاعمده 


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

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