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

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



سؤال بخصوص البحث باستخدام التاريخ عن طريق WebService - masry4u - 07-12-18

السلام عليكم اخواني
لدي قاعدة بيانات SQL Sever اقوم بالاتصال بها عن طريق WebService
السؤال هنا عندما اقوم بالبحث في جدول معين عن طريق تحديد التاريخ يعطي لي خطا فارجوا المساعدة وهذه هي الاكواد التي قمت باستخدامها

اولا الدالة الموجوده في WebService

كود :
   <WebMethod()>
   Public Function SelectPCTakhen(DatePC As Date) As DataTable
       Try
           CON = New SqlConnection(ConString)
           Dim da As New SqlDataAdapter("SELECT BarCodeNumber FROM PcTable WHERE DateofCome =" & DatePC & "", CON)
           Dim dt As New DataTable
           dt.TableName = "PcTable"
           da.Fill(dt)
           Return dt
       Catch ex As Exception
           Throw New SoapException(ex.Message, SoapException.ServerFaultCode, Context.Request.Url.AbsoluteUri)
       End Try
   End Function

ثانيا استدعاء الدالة

كود :
   Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
       'استدعاء الدالة من الويب سيفر من خلال المتغير i
       If i.SelectPCTakhen(DateTimePicker1.Value).Rows.Count > 0 Then
           DataGridView1.DataSource = i.SelectPCTakhen(DateTimePicker1.Value)
       End If
   End Sub

ويقوم باعطائي هذا الخطا

كود :
System.Web.Services.Protocols.SoapException
 HResult=0x80131501
 Message=Incorrect syntax near '02'.
 Source=WebApplicationCoputerMangement
 StackTrace:
  at WebApplicationCoputerMangement.WebService1.SelectPCTakhen(DateTime DatePC) in D:\Projects\NewComputerMangement\WebApplicationCoputerMangement\WebService1.asmx.vb:line 1093

ارجوا المساعدة جزاكم الله خيرا


RE: سؤال بخصوص البحث باستخدام التاريخ عن طريق WebService - rmnr - 07-12-18

اولا الدالة الموجوده في WebService
كود :
<WebMethod()>
Public Function SelectPCTakhen(DatePC As Date) As DataTable
    Try
        Dim da As New SqlDataAdapter("SELECT BarCodeNumber FROM PcTable WHERE DateofCome=@d", ConString) ' DataAdapter مع ConString لاحظ الإكتفاء بـ
        da.SelectCommand.Parameters.AddWithValue("@d",DatePC.Date)' Parameters لاحظ استخدام 
        Dim dt As New DataTable
        da.Fill(dt)
        Return dt
    Catch ex As Exception
        Throw New SoapException(ex.Message, SoapException.ServerFaultCode, Context.Request.Url.AbsoluteUri)
    End Try
End Function


ثانيا استدعاء الدالة 
كود :
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
    'استدعاء الدالة من الويب سيفر من خلال المتغير i
    Dim dt As DataTable = i.SelectPCTakhen(DateTimePicker1.Value.Date)
    If dt.Rows.Count > 0 Then
        DataGridView1.DataSource = dt' .Date لاحظ زيادة
    End If
End Sub



RE: سؤال بخصوص البحث باستخدام التاريخ عن طريق WebService - masry4u - 07-12-18

اشكرك [b]rmnr على الاستجابة السريعة وعلي الشرح المفيد لكن اعطني بعض الاخطاء[/b]

كود :
System.ServiceModel.FaultException
 HResult=0x80131501
 Message=System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: Cannot serialize the DataTable. DataTable name is not set.
  at System.Data.DataTable.WriteXmlSchema(XmlWriter writer, Boolean writeHierarchy)
  at System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter writer)
  at System.Xml.Serialization.XmlSerializationWriter.WriteSerializable(IXmlSerializable serializable, String name, String ns, Boolean isNullable, Boolean wrapped)
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write95_SelectPCTakhenResponse(Object[] p)
  at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer189.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
  at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
  --- End of inner exception stack trace ---
  at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
  at System.Web.Services.Protocols.SoapServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
  at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
  at System.Web.Services.Protocols.WebServiceHandler.Invoke()
  --- End of inner exception stack trace ---
 Source=mscorlib
 StackTrace:
  at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
  at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
  at ComputerMangement.ServiceReference1.WebService1Soap.SelectPCTakhen(DateTime DatePC)
  at ComputerMangement.ServiceReference1.WebService1SoapClient.SelectPCTakhen(DateTime DatePC) in D:\Projects\NewComputerMangement\ComputerMangement\Service References\ServiceReference1\Reference.vb:line 1008
  at ComputerMangement.FrmTakhenTwred.DateTimePicker1_ValueChanged(Object sender, EventArgs e) in D:\Projects\NewComputerMangement\ComputerMangement\FrmTakhenTwred.vb:line 109
  at System.Windows.Forms.DateTimePicker.OnValueChanged(EventArgs eventargs)
  at System.Windows.Forms.DateTimePicker.WmDateTimeChange(Message& m)
  at System.Windows.Forms.DateTimePicker.WmReflectCommand(Message& m)
  at System.Windows.Forms.DateTimePicker.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
  at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
  at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
  at System.Windows.Forms.Control.WmNotify(Message& m)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.GroupBox.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
  at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
  at System.Windows.Forms.Control.DefWndProc(Message& m)
  at System.Windows.Forms.Control.WmNotify(Message& m)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.DateTimePicker.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
  at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
  at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
  at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
  at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
  at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
  at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
  at ComputerMangement.My.MyApplication.Main(String[] Args) in :line 81



RE: سؤال بخصوص البحث باستخدام التاريخ عن طريق WebService - masry4u - 08-12-18

ارجوا المساعدة ياخواني