C# 获得;ExecuteXmlReader:连接属性尚未初始化";使用企业图书馆5.0
我有以下代码:C# 获得;ExecuteXmlReader:连接属性尚未初始化";使用企业图书馆5.0,c#,xml,c#-4.0,wcf-client,enterprise-library-5,C#,Xml,C# 4.0,Wcf Client,Enterprise Library 5,我有以下代码: public string GetClients() { string outputxml = string.Empty; Database db = DatabaseFactory.CreateDatabase("MyDatabase"); SqlCommand sqlcmd = db.GetSqlStringCommand("SELECT CLIENTID, CLIENTNAME FROM [CLIENTS] FOR X
public string GetClients()
{
string outputxml = string.Empty;
Database db = DatabaseFactory.CreateDatabase("MyDatabase");
SqlCommand sqlcmd = db.GetSqlStringCommand("SELECT CLIENTID, CLIENTNAME FROM [CLIENTS] FOR XML AUTO, ELEMENTS") as SqlCommand;
using (XmlReader reader = sqlcmd.ExecuteXmlReader()) //Exception thrown in this line
{
while (reader.Read())
{
outputxml = reader.ReadOuterXml();
}
return outputxml;
}
}
这个方法是我作为WCF自学的一部分所做的练习的一部分
在从WCF客户端应用程序调用此方法时,我在上面标记的位置得到了本文主题中提到的错误。数据库的连接字符串在MyDatabase的配置文件中指定,并设置为默认数据库
我在这里做错了什么?谢谢你的社区 您是否尝试检查基础连接状态?您也可以尝试从那里打开它 你有:
SqlCommand sqlcmd = db.GetSqlStringCommand("SELE..") as SqlCommand
您可以使用以下方法测试该命令:
(sqlcmd.Connection.State == ConnectionState.Open)
您也可以尝试直接打开连接:
sqlcmd.Connection.Open();
谢谢@t3rse。我知道怎么了。下面是重写的相同代码:
public string GetClients()
{
string outputxml = string.Empty;
Database db = DatabaseFactory.CreateDatabase("MyDatabase");
SqlCommand sqlcmd = db.GetSqlStringCommand("SELECT CLIENTID, CLIENTNAME FROM [CLIENTS] FOR XML AUTO, ELEMENTS") as SqlCommand;
using (XmlReader reader = db.ExecuteXmlReader(sqlcmd))
{
while (reader.Read())
{
outputxml = reader.ReadOuterXml();
}
return outputxml;
}
}