为什么无法序列化DataTable。 DataTable名称未设置?

时间:2016-07-12 07:10:29

标签: 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);
        }

    }

我尝试了很多,但没有工作。

1 个答案:

答案 0 :(得分:3)

数据表除非有名称,否则无法序列化。要解决此错误,我们需要使用TableName属性为数据表提供名称。

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

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