2013-08-21 72 views
0

我試圖從數據庫數據綁定到一個DataTable對象,但我不斷收到此錯誤:從數據庫向表中分配數據時出錯?

The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8)

我相信這意味着有來自地方,併發送一個文本\ 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(); 
     } 

回答

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特定的數據結構。

+0

謝謝,想通了我沒有連接字符串列在Web服務的congif文件 –