-3

私は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 という別のクラスで作成しました。このオブジェクトを別のクラスのパラメーターとして渡したいと思います。そのうちの 1 つはキャッシャー メニューで、これらのコードはここにあります...

エラーが発生します Error

一貫性のないアクセシビリティ: フィールド タイプ '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;
    }
}

どうやったらここから出られるんだ……

4

3 に答える 3

2

publicクラス宣言を入れます。

public class sqlServer

sqlServerプロパティを公開しているため、エラーが発生していますがpublic、sqlServer クラスはinternalデフォルトで公開されていません。

これを行うには、sqlServer クラスを作成するかpublic、プロパティを作成する必要がありますinternal

于 2012-08-08T07:24:02.473 に答える
0

あなたの問題は、sqlServerを内部として宣言したことです

そのエラーへのリンクは次のとおりです:http://msdn.microsoft.com/en-us/library/997yz02a (v = vs.80).aspx

于 2012-08-08T07:25:08.330 に答える
0

クラスsqlServerは公開されていません(internal他に何も指定していないため、デフォルトで表示されます)。このdbフィールドは公開されています。つまり、公開されていないタイプが公開されます。解決策は、sqlServerクラスを公開することでもあります。

public class sqlServer
{
   ...

ちなみに、クラスを少し再設計して、フィールドとフィールドを公開sqlServerしないようにします。uNamepWord

于 2012-08-08T07:25:27.920 に答える