c# - 为什么无法序列化 DataTable。未设置数据表名称?

标签 c# asp.net web-services c#-4.0 asmx

我正在使用此网络服务但返回错误:

无法序列化 DataTable。 DataTable 名称未设置。

 [WebMethod]
    public DataTable ApprovalCertificate(int ID)
    {
        try
        {
            DatabaseConnection DatabaseConnection = new DatabaseConnection(Constants.Databases.BPAConnection);

            SqlCommand SqlCom = new SqlCommand("ReportApprovalCertificate", DatabaseConnection.OpenConnection());
            SqlCom.CommandType = CommandType.StoredProcedure;
            SqlCom.Parameters.AddWithValue("@PropertyDetailsID", ID);

            DataTable dt = new DataTable();
            SqlDataAdapter sqlDA = new SqlDataAdapter(SqlCom);
            sqlDA.Fill(dt);

            DatabaseConnection.CloseConnection();

            return dt;

        }
        catch (Exception ex)
        {
            throw ex;

        }
        finally
        {
            //ResultPanel.Controls.Add(ResultLabel);
        }

    }

我尝试了很多,但没有用。

最佳答案

数据表只有有名字才能被序列化。要解决此错误,我们需要使用 TableName 属性为数据表提供名称。

尝试给它命名然后序列化:

     dt = GetData() //fill data
     dt.TableName = "MyDt"

关于c# - 为什么无法序列化 DataTable。未设置数据表名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38322181/

相关文章:

c# - 网络 API 2 : OData 4: Single Controller with Common Repository does not work with IQueryable when passed to the OK method

c# - 线路端点检测

c# - 如何为非托管 c dll 创建一个 c++\cli 包装器

Asp.net 4.0 站点失败,因为没有与 Classic appPool 映射的处理程序

web-services - Java EE 中的 Web 服务身份验证

c# - 为什么全局声明的 DataTable 不保留其值?

asp.net 图像上传控件(奖励 - 允许用户在保存之前裁剪图像)

javascript - 键入时如何将文本框输入语言更改为波斯语

javascript - NodeJS 中调用 JSON 的奇怪字段

与多个 Web 服务快速通信