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

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



تحويل الكود من الاكسس للكسيوال سيرفر - محمد خيري - 16-05-24

السلام عليكم 
اخواني لو ممكن مساعدتكم و بارك الله فيكم 
عندي هذا الكود و هو يعمل جيدا على قاعدة بيانات أكسس
كود :
Using DA As New OleDb.OleDbDataAdapter("SELECT EMPLOYE From Table1 Where EMPLOYEFACTORY ='الورشة' Order By RND(-(100000*Id)*Time())", Conne)
DA.Fill(DT)
End Using
لكن لما قمت بتحويل قاعدة البيانات للسكيوال سيرفر صار يعطيني خطأ على كلمة Time
Time is not  recognized built in function name
كيف احول هذا الكود ليعمل على قاعدة سكيوال الله يرضى عليكم


RE: تحويل الكود من الاكسس للكسيوال سيرفر - أبو خالد الشكري - 16-05-24

وعليكم السلام ورحمة الله وبركاته
جرب الكود التالي :
كود :
      Dim query As String
       query = "SELECT EMPLOYE FROM Table1 WHERE EMPLOYEFACTORY = N'الورشة' ORDER BY NEWID()"

       Using DA As New SqlDataAdapter(query, Conne)
           DA.Fill(DT)
       End Using
وجرب كذلك الكود  التالي بإضافة الوقت Time
كود :
Dim query As String
query = "SELECT EMPLOYE FROM Table1 WHERE EMPLOYEFACTORY = N'الورشة' ORDER BY RND(-(100000*Id)*Time())"

Using DA As New SqlDataAdapter(query, Conne)
   DA.Fill(DT)
End Using



RE: تحويل الكود من الاكسس للكسيوال سيرفر - محمد خيري - 16-05-24

بارك الله فيك أخي أبو خالد الشكري على المساعدة
للاسف باستعمال كلمة time تظهر لي نفس رسالة الخطأ
و باستعمال كلمة newid تظهر رسالة الخطا هذي
Operand type clash: uniqueidentifier is incompatible with int
بارك الله فيك


RE: تحويل الكود من الاكسس للكسيوال سيرفر - أبو خالد الشكري - 16-05-24

الله يبارك فيك أخي العزيز
جرب الكود التالي ، عسى يشتغل إن شاء الله .

كود :
Dim query As String
Dim factoryName As String = "الورشة"

query = "SELECT EMPLOYE FROM Table1 WHERE EMPLOYEFACTORY = CONVERT(uniqueidentifier, @FactoryName) ORDER BY NEWID()"

Using DA As New SqlDataAdapter(query, Conne)
   DA.SelectCommand.Parameters.AddWithValue("@FactoryName", factoryName)
   DA.Fill(DT)
End Using



RE: تحويل الكود من الاكسس للكسيوال سيرفر - محمد خيري - 16-05-24

أخي الكريم أبو خالد الشكري نفس المشكلة مع ظهور هاته الرسالة
Conversion failed when converting from a character string to uniqueidentifier.
بارك الله فيك على المساعدة

أخي 3sem
شكرا بارك الله فيك على المساعدة أنا اريد أن أعمل random لمجموعة من البيانات و ليس ترتيب فقط

Dim First_Sql As String
        Dim First_Factory As String = "الورشة"
        First_Sql = "SELECT  TOP(1) EMPLOYE From Table1 Where EMPLOYEFACTORY = @First_Factory ORDER BY NEWID())"
        Using DA As New System.Data.SqlClient.SqlDataAdapter(First_Sql, Conne)
            DA.SelectCommand.Parameters.AddWithValue("@First_Factory", First_Factory)
            DA.Fill(DT)
        End Using

اخي 3sem استعملت هذا الكود يلي فوق و ظهر لي هذا الخطا
Additional information: Incorrect syntax near ')'.


RE: تحويل الكود من الاكسس للكسيوال سيرفر - محمد خيري - 16-05-24

شكرا جزيلا اخ 3sem 
هذا الكود يشتغل جيدا لكن عندما احذف كلمة Top1 
كود :
Dim First_Sql As String
       Dim First_Factory As String = "الورشة"
       First_Sql = "SELECT  TOP(1) EMPLOYE From Table1 Where EMPLOYEFACTORY = @First_Factory ORDER BY NEWID()"
       Using DA As New System.Data.SqlClient.SqlDataAdapter(First_Sql, Conne)
           DA.SelectCommand.Parameters.AddWithValue("@First_Factory", First_Factory)
           DA.Fill(DT)
       End Using
هل هذه الكلمة ضرورية لاني عندما احذف Top1 يشتغل عادي