0

我收到以下错误

错误不一致的可访问性:字段类型“Project3_MineSweeper.DB”的可访问性低于字段“Project3_MineSweeper.Form2.db”

这是 DB.cs 中的代码

class DB
{
    private string connectionString;

    public string ConnectionString
    {
        get { return connectionString; }
    }

    private SqlConnection connection;

    public SqlConnection Connection
    {
        get { return connection; }
    }

    public DB()
    {
        connectionString="Data Source=NGFAJAR-PC\\FAJAR;Initial Catalog=DB;Integrated Security=True";
        connection = new SqlConnection(connectionString);
    }
}

这是Form2.cs的代码

public partial class Form2 : Form
{
    public DB db; //it's here where I am getting the error

    private Form3 form3;
    public Form2()
    {
        db = new DB();
        InitializeComponent();
    }
    ...
}

最后,Form3.cs

public partial class Form3 : Form
{
    private Form2 form2;
    public Form3()
    {
        InitializeComponent();
    }

    public void loadData()
    {
        DataTable dt = form2.db.GetData();
        dgvScore.DataSource = dt;
    }
}

怎么了?我应该怎么做才能解决它?感谢您的关注和帮助。

4

3 回答 3

3

您需要声明class DBinternal class DBor public class DB

于 2013-07-14T17:03:15.960 回答
2

怎么了?

该类型DB被声明为class DB没有显式访问修饰符。这可能很好。Project3_MineSweeper那么命名空间 ( )的直接成员的默认可访问性是internal. DBinternal堂课也是如此。

现在Form2是一public堂课。公共意味着任何人,甚至是这个“程序”(这个程序集)之外的代码都可以看到Form2. 现在Form2有一个字段db也是public. db公共类中的公共也是如此,因此可以db从外部看到。但问题是:程序之外的人甚至不知道有一个类型叫做Project3_MineSweeper.DB. 那么他们怎么能看到一个“秘密”类型的字段呢?这是不一致的地方。

我应该怎么做才能解决它?

使可访问性兼容,例如将字段更改为internal,因此:

public partial class Form2 : Form
{
    internal DB db;

    ...
}
于 2013-07-14T17:21:19.177 回答
1

像这样改变你的数据库类

public class DB
{
    ....
}
于 2013-07-14T17:09:20.730 回答