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 クライアントからこのサービスを使用する場合DataTable、.NET 固有のデータ構造であるため、a が何であるかを理解できません。

于 2013-08-21T20:12:54.080 に答える