我正在使用 WCF 从使用 .net 框架的 Web 应用程序的数据库中获取数据。在我的 WCF 应用程序代码中,要求是以 XML 格式获取数据。在我的 Web 应用程序代码中,要求是使用对象调用 WCF 服务以获取 XML 格式的数据库数据。
WCF service.cs代码如下
public class AWS_WCF_Service : IAWS_WCF_Service
{
public SqlConnection Con = new SqlConnection();
public SqlConnectionStringBuilder Sbu = new SqlConnectionStringBuilder();
public static SqlConnection GlobalConnection_Web = new SqlConnection();
public SqlConnectionStringBuilder Sbu_Web = new SqlConnectionStringBuilder();
public static DataTable dt = new DataTable();
public static DataSet myDataSet = new DataSet();
public void DoWork()
{
}
public XmlDocument RetrieveData(String Tblname, String StationID, DateTime date)
{
bool flgPrcs = OpenDB();
if (flgPrcs == false)
{
return null;
}
String Query = "select * from " + Tblname + " where ID = ' 1 ' "
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(Query, Con);
adapter.Fill(dt);
myDataSet.Tables.Add(dt);
string xmlStr = "";
XmlDocument xmlDoc = new XmlDocument();
xmlStr = myDataSet.GetXml();
xmlDoc.LoadXml(xmlStr);
return xmlDoc;
}
public bool OpenDB()
{
if (Con.State.ToString().ToUpper() == "OPEN")
{
Con.Close();
}
Sbu.DataSource = @"XXXXXXX";
Sbu.InitialCatalog = "XXXXX";
Sbu.IntegratedSecurity = false;
Sbu.UserID = "XXXX";
Sbu.Password = "XXXXX";
Con.ConnectionString = Sbu.ConnectionString;
Con.Open();
return true;
}
public bool CloseDB()
{
if (Con.State.ToString().ToUpper() == "OPEN")
{
Con.Close();
}
return true;
}
}
WCF接口代码如下
[ServiceContract]
public interface IAWS_WCF_Service
{
[OperationContract]
void DoWork();
[OperationContract,XmlSerializerFormat]
System.Xml.XmlDocument RetrieveData(String Tblname, String StationID, DateTime date);
[OperationContract]
bool OpenDB();
[OperationContract]
bool CloseDB();
}
我使用 WCF 将数据转换为 XML 的 Web 应用程序,代码如下
AWS_Service1.AWS_WCF_ServiceClient ObjAwsSer = new AWS_WCF_ServiceClient();
XmlDocument OBJXml = ObjAwsSer.RetrieveData("XXX", "XX", DateTime.Now);
在这里我收到以下错误
无法将类型“System.Xml.Linq.XElement”隐式转换为“System.Xml.XmlDocument”