سؤال بخصوص البحث باستخدام التاريخ عن طريق 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
ارجوا المساعدة ياخواني
|