2012-08-02 25 views
1

我得到运行时出现此错误:结合WCF与SQL到MVC

System.InvalidOperationException:的ExecuteReader:连接属性 尚未初始化。

SqlDataReader openBuyers = b.ExecuteReader(); 

我使用的方法从我的WCF:

这是指向该行

这对SVC:

public string ConnectionString() 
    { 
     string connectToDB = ConfigurationManager.ConnectionStrings["connection"].ToString(); 
     return connectToDB; 
    } 

    public SqlConnection OpenConnection() 
    { 
     try 
     { 
      SqlConnection linkToDB = new SqlConnection(ConnectionString()); 
      linkToDB.Open(); 
      return linkToDB; 
     } 
     catch (Exception) 
     { 
      return null; 
     } 
    } 

将此添加到我的WCF的web.config:

<connectionStrings> 
    <add name="connection" connectionString="Data 
    Source=localhost\SQLEXPRESS;Integrated Security=true;Initial 
    Catalog=ProductDB"/> 
</connectionStrings> 

回答

1
SqlConnection myConnection = new SqlConnection(myConnectionString); 
    SqlCommand myCommand = new SqlCommand(mySelectQuery, myConnection); 
    myConnection.Open(); 
    SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); 

你错过了前3线 - 不能创建或打开您的连接

来源:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader(v=vs.71).aspx

+0

当然我有那些:linkToDB = ecom.OpenConnection(); SqlCommand b =新的SqlCommand(sqlText,linkToDB);其中ecom是我的Web服务的实例,尝试过你的,但错误是实例失败。指向myConnection.Open(); – MiddleKay 2012-08-02 09:47:29

+0

什么是ecom对象?它是返回一个新的连接还是重新使用一个? – Chris 2012-08-02 11:33:43

+0

MyServiceclient ecom = new MyServiceClient();它正在从Web服务中重用。 – MiddleKay 2012-08-02 13:57:01