2012-08-02 60 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