1. 程式人生 > >webservice返回datatable時報序列化錯誤

webservice返回datatable時報序列化錯誤

    今天寫了一個webservice,返回型別是DataTable ,可是執行的是缺報了這個錯誤:System.InvalidOperationException: 生成 XML 文件時出錯。 ---> System.InvalidOperationException: 無法序列化 DataTable。未設定 DataTable 名稱。
   在 System.Data.DataTable.WriteXmlSchema(XmlWriter writer, Boolean writeHierarchy)
   在 System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter writer)
   在 System.Xml.Serialization.XmlSerializationWriter.WriteSerializable(IXmlSerializable serializable, String name, String ns, Boolean isNullable, Boolean wrapped)
   在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_DataTable(Object o)
   在 Microsoft.Xml.Serialization.GeneratedAssembly.DataTableSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
   在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   --- 內部異常堆疊跟蹤的結尾 ---
   在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
   在 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces)
   在 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o)
   在 System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue)
   在 System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
   在 System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
   在 System.Web.Services.Protocols.WebServiceHandler.Invoke()

看到 “未設定 DataTable 名稱”這幾個字,然後就給自己定義的那個table命名一下。程式碼:

        DataTable dt_types = new DataTable();
           dt_types .TableName = "videoalarmtype";

就這樣問題就解決啦!

   記下來,希望下次不要再出錯!O(∩_∩)O~