2012-08-29 30 views
0

可能重複:
Does not contain a constructor that takes 0 arguments子類提供了錯誤約父類的構造

我有一個名爲的getData與迫使你通過連接字符串構造一個DAL類:

namespace AQProduct 
{ 
    public class getData 
    { 
    public getData(string strConnectionString) 
    { 
    } 
    } 
} 

我有類做實際的工作:

namespace AQProduct 
{ 
    public class User_DL : getData 
    { 
    } 
} 

構建失敗,

'AQProduct.getData' 不包含一個構造函數0 參數

我如何得到這個工作?

+1

'串strConnectionString'? '類getData'?它們完全合法*,但它們並不完全是C#或.NET中的標準命名約定;你可能想考慮更習慣的命名。 –

+0

@Mark:你的建議? – callisto

+0

'connectionString'和可能'DataRetriever'或'DaoBase' –

回答

3

在一個(非靜態)類,如果你不加入自己的構造函數,一個是隱式創建的形式爲:

public ClassName : base() { } 

即調用基類的無參數構造函數。自那不存在,你會需要添加自定義的構造函數,例如:

public User_DL() : base("some fixed value from somewhere") {} 

或:

​​
+0

@mark:你的建議是:命名約定? – callisto

+0

@callisto非常:Daniel說的 –

3

你需要一個構造函數添加到派生類,並通過連接字符串的基類:

public class User_DL : getData 
{ 
    public User_DL(string connectionString) 
     : base(connectionString) 
    { 
    } 
} 
0

您需要在您的DAL類添加默認構造函數:

// Your default constructor 
public getData() 
{ 
} 

或者將帶有參數的構造函數添加到派生類中;去:

public class User_DL : getData 
{ 
    public User_DL(string connectionString) : base(connectionString) 
    { 
     // Insert code here 
    } 
} 
0

添加此構造

public User_DL(string yourConnection) : base(yourConnection) 
{ 


}