0

我正在尝试将数据库中的数据绑定到 DataTable 对象,但我一直收到此错误:

内容类型 text/html;响应消息的 charset=UTF-8 与绑定的内容类型不匹配 (text/xml; charset=utf-8)

我相信这意味着来自某个地方的错误并作为 text\html 发送。但是,如果我使用我的 aspx 文件中的 sqldatasource 标记将数据绑定到我的 grif,它就可以很好地绑定。

这是我的 Web 服务文件中的函数:

 [WebMethod]
    public DataTable getTable()
    {
        DataTable myTable = new DataTable("AMR_COUNTY");

        ConnectionStringSettingsCollection s = ConfigurationManager.ConnectionStrings;
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["wmoddevsql02.ePCR310_Server.dbo"].ToString()))
        using (SqlCommand cmd = conn.CreateCommand())
        {
            conn.Open();
            cmd.CommandText = string.Format("SELECT * FROM AMR_COUNTY");
            using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
                dataAdapter.Fill(myTable);
        }

        return myTable;

    }
}

这是我的代码隐藏中的调用:

        DataTable dataTable = new DataTable();
        using (MCMwebservice.Service1SoapClient myWebService = new MCMwebservice.Service1SoapClient())
        {//use the session set userID to query Database for all incidents for the logged in user 
           dataTable = myWebService.getTable();
           WebDataGrid1.DataSource = dataTable;
            WebDataGrid1.DataBind();
        }
4

1 回答 1

1

SOAP Web 服务旨在返回 XML,因此您应该接受它并从数据的 XML 表示构建对象,如下所示:

public DataTable BuildDataTableFromXml()    
{
    StringReader theReader = new StringReader(xmlData);
    DataSet theDataSet = new DataSet();
    theDataSet.ReadXml(theReader);

    return theDataSet.Tables[0];
}

注意:SOAP 旨在供任何能够理解 XML 的客户端使用,因此如果您想从 Java 客户端使用此服务,那么它不会理解 aDataTable是什么,因为那是 .NET 特定的数据结构。

于 2013-08-21T20:12:54.080 回答