我正在尝试将数据从数据库绑定到DataTable对象,但我一直收到此错误:
内容类型text / html; charset =响应消息的UTF-8 不匹配绑定的内容类型(text / xml; charset = utf-8)
我相信这意味着来自某个地方的错误会被发送为text \ html。 但是,如果我使用我的aspx文件中的sqldatasource标记将数据绑定到我的grif,那么绑定就好了。
以下是我的网络服务文件中的功能:
[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();
}
答案 0 :(得分: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客户端使用此服务,那么它将无法理解DataTable
是什么,因为这是一个.NET特定的数据结构。