تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ارجوا فى المساعدة فى الاستعلام عن طريق ويب سيفر
#1
قمت بأنشاء كود لدخول برنامجي بصلحيات معينة وعند شاشة الدخول ( اسم المستخدم , وكلمة المرور )

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

PHP كود :
   <WebMethod()>
 
   Public Function selectLogen(Username As StringPassword As String) As Integer
      
            Dim cmd 
As New SqlCommand()
 
           If CON.State ConnectionState.Open Then
                CON
.Close()
 
           End If
 
           CON.Open()
 
           cmd.Connection CON
            cmd
.CommandText "SELECT * FROM dbo.Users WHERE (UserName LIKE '" Username "') AND (Password LIKE '" Password "')"
 
           If CON.State ConnectionState.Open Then
                CON
.Close()
 
           End If
 
           CON.Open()
 
           Return cmd.ExecuteNonQuery 


ثم قمت باستدعئها في الفورم الخاصة بها واستخدام الدالة

PHP كود :
Dim i As New ServiceReference1.WebService1SoapClient
 
If i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text) > 0 Then
   Dim Mainform 
As New MainFrm2
            Mainform
.Show()
 
           Me.Hide()
 
      Else
 
           MessageBox.Show("برجاء التأكد من البيانات"APPLICATIONNAMEMessageBoxButtons.OKMessageBoxIcon.Error)
 
           PasswordTextBox.ResetText()
 
           UsernameTextBox.ResetText()
 
           UsernameTextBox.Focus()
 
       End If 
المشكلة هنا لا توجد نتيجة ترجع من الاستعلام الموجود في الويب سيرفيس وتظهر لي رسالة ( برجاء التاكد من البيانات ) في حين ان اسم المستخدم صحيح وكلمة السر
فهل من المساعدة جزاكم الله كل خير
الرد }}}
تم الشكر بواسطة:
#2
تحتاج تعديل بسيط في جانب الويب سيرفس
وهي اذا اردت عدد السجلات  فاستخدم جملة استعلام  (*)select  count
وترجع بـ executescalar وليس  ExecuteNonQuery
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: أبو نوره , أبو نوره
#3
اشكر اخي سعود تمت بنجاح الحمد لله لكن بدون استخدام صلحيات المستخدم
PHP كود :
Name CurDataTable.Rows(0)(1)
 
           FiledAdd CurDataTable.Rows(0)(2)
 
           FiledUpdate CurDataTable.Rows(0)(3)
 
           FiledSave CurDataTable.Rows(0)(4)
 
           FiledDelete CurDataTable.Rows(0)(5
رجعت قيم الاسم وكلمة المرور فقط
الرد }}}
تم الشكر بواسطة: أبو نوره
#4
العفو ياطيب
كيف كتبت الاستعلام؟
اذا مثل التعديل اللي قلت لا اظن يرجع قيم نصية وانما فقط قيمة رقمية تمثل العدد فقط
لو حبيت قيم نصية استخدم ارجاع DataTable وفي الجهاز المحلي تعرف DataTable وتتم التعبئة ..
الطرق كثيرة.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: كفاح , أبو نوره , أبو نوره
#5
PHP كود :
   <WebMethod()>
 
   Public Function selectLogen(Username As StringPassword As String) As DataTable
        Try
            CON 
= New SqlConnection(ConString)
 
           Dim da As New SqlDataAdapter("SELECT Count(*) FROM dbo.Users WHERE (UserName LIKE '" Username "') AND (Password LIKE '" Password "')"CON)
 
           Dim dt As New DataTable
            dt
.TableName "Users"
 
           da.Fill(dt)
 
           Return dt
        Catch ex 
As Exception
            Throw 
New SoapException(ex.MessageSoapException.ServerFaultCodeContext.Request.Url.AbsoluteUri)
 
       End Try
 
   End Function 

PHP كود :
       If i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text).Rows.Count 0 Then

            Name 
i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text).Rows(0)(1)
 
           FiledAdd i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text).Rows(0)(2)
 
           FiledUpdate i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text).Rows(0)(3)
 
           FiledSave i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text).Rows(0)(4)
 
           FiledDelete i.selectLogen(UsernameTextBox.TextPasswordTextBox.Text).Rows(0)(5)

 
           Dim Mainform As New MainFrm2
            Mainform
.Show()
 
           Me.Hide()
 
       Else
            MessageBox
.Show("برجاء التأكد من البيانات"APPLICATIONNAMEMessageBoxButtons.OKMessageBoxIcon.Error)
 
           PasswordTextBox.ResetText()
 
           UsernameTextBox.ResetText()
 
           UsernameTextBox.Focus()
 
       End If
 
   End Sub 
الرد }}}
تم الشكر بواسطة: أبو نوره
#6
الان الامر تغير
ارجع للكود الاول وليس:

كود :
SELECT Count(*)

 بل اجعله هكذا
كود :
select * from
وعبء الداتاتيبل هكذا
كود :
dt.load(cm.executereader)
وارجع الداتاتيبل
وبالجهاز المحلي افحص صفوف الداتاتيبل
dt.rows.count
وابد بالاسنادات

فين راح الردSmile
هو على اساس انك تستخدم sqlcommand  لكن لم انتبه انك تستخدم sqldataadapter    ولا مشكلة المهم جملة الاستعلام واحدة  سواءا هكذا او غيرها
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: كفاح , أبو نوره
#7
مشكور اخي سعود ضبط الموضوع كنت دخلت يوزر له جميع الصلحيات كدا تمام جزاك الله كل خير عنا

PHP كود :
   <WebMethod()>
 
   Public Function selectLogen(Username As StringPassword As String) As DataTable
        Try
            CON 
= New SqlConnection(ConString)
 
           Dim da As New SqlDataAdapter("SELECT * FROM dbo.Users WHERE (UserName LIKE '" Username "') AND (Password LIKE '" Password "')"CON)
 
           Dim dt As New DataTable
            dt
.TableName "Users"
 
           da.Fill(dt)
 
           If CON.State ConnectionState.Open Then
                CON
.Close()
 
           End If
 
           CON.Open()
 
           dt.Load(da.SelectCommand.ExecuteReader)
 
           Return dt
        Catch ex 
As Exception
            Throw 
New SoapException(ex.MessageSoapException.ServerFaultCodeContext.Request.Url.AbsoluteUri)
 
       End Try
 
   End Function 

مشكور اخي سعود ضبط الموضوع كنت دخلت يوزر له جميع الصلحيات كدا تمام جزاك الله كل خير عنا
الرد }}}
تم الشكر بواسطة: أبو نوره
#8
اخي الكريم
يكفي التعبئة فقط بـ 

كود :
da.Fill(dt)

مباشرة اكتب 
Return dt

إقتباس :مشكور اخي سعود ضبط الموضوع كنت دخلت يوزر له جميع الصلحيات كدا تمام جزاك الله كل خير عنا
العفو ياطيب
لكن دقق بالكود فيه اضافات مالها لازم (اذا لم اخطيء)
مثل التعبئة  فقد عبأت مرتين عن طريق 

كود :
da.fill(dt)

 و 
كود :
dt.Load(da.SelectCommand.ExecuteReader)
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: كفاح , أبو نوره
#9
صحيح لم انتبة من فرحتي بتشغيل الكود اخيرا شكرا لك
الرد }}}
تم الشكر بواسطة: أبو نوره
#10
ملاحظة بسيطة على الاستعلام
بما أنك تستعلم على بيانات الدخول وهي بيانات حساسة فالافضل استخدام = بدلا من like

الرد }}}
تم الشكر بواسطة: أبو نوره , سعود , سعود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 620 05-02-25, 01:51 AM
آخر رد: new_programer
  مشكلة في جملة الاستعلام Emam emam 5 460 25-11-24, 09:48 PM
آخر رد: Emam emam
  كيف يمكن اضافة عناصر للكومبوبوكس اثناء تشغيل البرنامج عن طريق المستخدم haithammoftah 3 2,160 30-09-24, 12:52 AM
آخر رد: asmarsou
  ارجو المساعدة في فك تسفير ملف xml mimomassa17 0 217 15-09-24, 03:23 PM
آخر رد: mimomassa17
  أريد تحديد صلاحيات المستخدمين عن طريق حقل في جدول قاعدة البيانات F.H.M 0 326 12-09-24, 06:29 PM
آخر رد: F.H.M
  كيفيه التعامل مع ملفات الدروب بوكس عن طريق api ackore 3 457 22-08-24, 06:13 AM
آخر رد: ackore
  ارجو المساعدة في كود مقارنة عامود داخل الداتا جريد فيو alachk 11 1,104 11-08-24, 11:44 AM
آخر رد: alachk
  المساعدة في عملية طرح الوقت من خلال اثنين textbox جيولوجي مبتدئ 9 2,762 06-08-24, 07:43 PM
آخر رد: خالد كامل1
  فتح ملف اكسيل عن طريق الفيجوال بيسك 2015 Emam emam 0 277 19-07-24, 05:14 PM
آخر رد: Emam emam
  [VB.NET] ممكن المساعدة في اجراء بحث كومبوبكس وتيكست raedre22 20 1,125 18-07-24, 12:18 PM
آخر رد: raedre22

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


يقوم بقرائة الموضوع: