对象传递中的不可访问性作为参数传递

时间:2012-08-08 07:20:38

标签: c# .net wpf

我在SQLServer类中有这段代码

  class sqlServer
{
    public string uName,pWord;

    public SqlConnection connection;
    public sqlServer(string name, string pass)
    {
        this.uName = name;
        this.pWord = pass;
        connection = new SqlConnection("user id=" + uName + ";" + "password=" + pWord + ";" + "server=SERVER\\SQLSERVER2008;"
                                   + "database=school; " + "connection timeout=30");

    }
  --------------------

我在另一个名为mainWindow的类中创建了这个类的对象,我希望将这个对象作为另一个类的参数传递。其中一个是收银菜单,这些代码在这里......

它给出错误错误

可访问性不一致:字段类型“school.sqlServer”比字段'school.cashierMenu.db'更难访问:D:\ Projects \ school \ school \ cashierMenu.xaml.cs 21 26 school

MainMenu部分......

db = new sqlServer(txtBxName.Text, txtBxPassword.Password);
            if (db.connect())
            {
                db.disconnect();
                MessageBox.Show("Fasasaild");                   
            }

            else
            {
                MessageBox.Show("Faild");

}

收银员菜单构造函数

public partial class cashierMenu : Window
{
    public sqlServer db;

    public cashierMenu(sqlServer database)
    {
        InitializeComponent();
        this.db = database;
    }
}

我怎么能离开这里......

3 个答案:

答案 0 :(得分:2)

public放入您的班级声明中。

public class sqlServer

您收到错误是因为您将sqlServer属性公开为public,但默认情况下sqlServer类不公开其internal

要执行此操作,您必须使您成为sqlServer类public或将您的属性设为internal

答案 1 :(得分:0)

您的问题是您将sqlServer声明为内部

以下是该错误的链接:http://msdn.microsoft.com/en-us/library/997yz02a(v=vs.80).aspx

答案 2 :(得分:0)

班级sqlServer未公开显示(默认为internal,因为您尚未指定任何其他内容)。 db字段是公共的,这意味着它将公开一个不公开的类型。解决方案是将sqlServer类设为public:

public class sqlServer
{
   ...

作为旁注,我会稍微重新设计sqlServer类,以便它不会公开公开uNamepWord字段。