zoukankan      html  css  js  c++  java
  • WCF中序列化DataTable出错

      今天用wcf传送datatable时出现下列错误。我估计是序列化的问题。

    "An error occurred while receiving the HTTP response to ****.svc. 
    This could be due to the service endpoint binding not using the HTTP protocol. ……"

      网上有人给出了解决方法,即设置DataTable的TableName属性即可。

    样例代码:

      建立服务契约。契约中一个返加DataTable的方法,一个是返回DataSet的方法。

    namespace NavigateService
    {
        [ServiceContract]
        
    public interface INavigateService
        {
            [OperationContract]
            DataTable GetTableAllData(
    string tableName);

            [OperationContract]
            DataSet GetDataSet(List
    <DataSetObject> tables);
        }
    }


      实现契约,MsSql类是自己建立的一个类,用于取数据。

      注意:在返回DataTable的GetTableAllData方法中, tableResult设置了TableName属性。这样Wcf序列化时就不会出错。

         而返回DataSet的方法不需要作任何设置。

    using System.Data;
    using DL;

    namespace NavigateService
    {
        public class NavigateService : INavigateService
        {
            MsSql msSql 
    = null;
            
    public NavigateService()
            {
                msSql 
    = new MsSql();
            }

            
    public DataTable GetTableAllData(string tableName)
            {
                DataTable tableResult 
    = null;
                tableResult 
    = msSql.GetTableAllData(tableName);
                tableResult.
    TableName = "navigateData";
                
    return tableResult;
            }

            
    public DataSet GetDataSet(List<DataSetObject> tables)
            {
                DataSet resultDataSet 
    = new DataSet();
                resultDataSet 
    = msSql.GetDataSet(tables);
                
    return resultDataSet;
            }
        }
    }


  • 相关阅读:
    C# 读取 vCard 格式
    C#自动选择出系统中最合适的IP地址
    WPF专业编程指南
    WPF专业编程指南
    随手复习一下委托:delegate
    迟到的 WPF 学习 —— 控件
    迟到的 WPF 学习 —— 路由事件
    迟到的 WPF 学习 —— 依赖项属性
    迟到的 WPF 学习 —— 布局
    JavaScript 左右上下自动晃动,自动移动。
  • 原文地址:https://www.cnblogs.com/scottckt/p/1850028.html
Copyright © 2011-2022 走看看