有人可以帮助解决以下错误:
可访问性不一致:正确类型“数据库”不易访问 比属性'BaseClass.dtBase'
由于错误消息不一致,我无法运行程序。
我的错误是受保护数据库上的dtBase {get; set;},总是红线。
这是我的交付课程。
namespace Payroll_System
{
public class BaseClass
{
protected Database dtBase { get; set; }
public BaseClass()
{
dtBase = new Database();
}
public string DBText(string Value)
{
return string.Format("{0}", Value).Replace("'", "''");
}
}
public class Employee: BaseClass
{
public Employee()
{
}
public string IDNo { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string ContactNo { get; set; }
public string Designation { get; set; }
public string Gender { get; set; }
public string PhilHealthNo { get; set; }
public string PhilHealth { get; set; }
public string SSSNo { get; set; }
public string SSS { get; set; }
public string eDate { get; set; }
public void Insert()
{
dtBase.CommandText("INSERT into Employee(eIDNo, eName, eAddress, eContactNo, eDesignation, eGender, ePhilHealthNo, ePhilHealth, eSSSNo, eSSS, edate) values(@IDNo, @Name, @Address, @ContactNo, @Designation, @Gender, @PhilHealthNo, @PhilHealth, @SSSNo, @SSS");
dtBase.AddParameter("@IDNo", this.IDNo);
dtBase.AddParameter("@Name", this.Name);
dtBase.AddParameter("@Address", this.Address);
dtBase.AddParameter("@ContactNo", this.ContactNo);
dtBase.AddParameter("@Designation", this.ContactNo);
dtBase.AddParameter("@Gender", this.Gender);
dtBase.AddParameter("@PhilHealthNo", this.PhilHealthNo);
dtBase.AddParameter("@PhilHealth", this.PhilHealth);
dtBase.AddParameter("@SSSNo", this.SSSNo);
dtBase.AddParameter("@SSS", this.SSS);
dtBase.AddParameter("@Date", this.eDate.ToString());
dtBase.Execute();
}
}
}
答案 0 :(得分:0)
我的猜测是 strConn = "Provider=sqloledb; User ID=grpleader; Password=r_32_Dosu_sz_qzyp; Initial Catalog=factory; Data Source=202.204.251.30,1433"
strConn1 ="Provider=sqloledb; User ID=prjleader; Password=Oi_jcvx_876_pgy_erl; Initial Catalog=factory; Data Source=202.204.251.30,1433"
strConn2 ="Provider=sqloledb; User ID=teamhead; Password=eqjJ_Ui9_tjqw_l5; Initial Catalog=factory; Data Source=202.204.251.30,1433"
被声明为内部。 (如果未声明Database
,则默认为public
)
此代码:
internal
表示此库外部的代码可以创建一个继承自public class BaseClass
{
protected Database DtBase { get; set; }
}
的新类,这个新类应该能够通过BaseClass
成员访问Database
类型的项目。但这是一个错误,因为DtBase
不公开,无法在库外访问。
一种选择是将Database
声明为Database
public
<小时/> 如果C#能够将可访问性设置为
public class Database
{
}
public class BaseClass
{
protected internal Database DtBase(...) {}
}
,那将会很棒。但是,事实证明你不能这样做。 (protected AND internal
并不代表您可能自动认为的含义,请参阅this discussion)