C#类在类中使用,但它不起作用

时间:2016-05-05 13:28:39

标签: c# sql-server class static

我有连接数据库的课程:

namespace DamianWprawka
{
    class SQLcon
    {
        static SqlConnection konekt = new SqlConnection();

        public SQLcon()
        {
            konekt.ConnectionString = "Data Source=.\\sqlexpress;" 
            + "Initial Catalog=PRACA;" + "User id=sa;" + "Password=xxXXxx;";
        }

        void open()
        {
            konekt.Open();
        }

        void close()
        {
            konekt.Close();
        }
    }
}

其他用于查询,如插入,更新,删除,下载数据itp:

   namespace DamianWprawka
   {
        class SQLquery
        {
            SQLcon SQLcnn = new SQLcon();

            public void PobierzPracownik
            {
               SQLcnn.Open();
            }
        }
    }

为什么我不能拨打SQLcnn.Open();?我尝试使用静态字段/类,我只能在Main中使用它。我知道我可以在一个班级中进行连接和查询,但我希望将来能够理解这个谜团。

2 个答案:

答案 0 :(得分:0)

您应该在** **

内进行更改
class SQLcon
{
    ....
    **public** void open()  ...
    **public** void close()  ...
}

class SQLquerry
{
    ....
    public void PobierzPracownik**()**
    {
       SQLcnn.**open**();
    }
}

答案 1 :(得分:0)

访问修饰符和连接类的方法应该是公共的。像这样:

public class SQLcon
{
       static SqlConnection konekt = new SqlConnection();
       public SQLcon()
       {
           konekt.ConnectionString = "Data Source=.\\sqlexpress;" +  "Initial Catalog=PRACA;" + "User id=sa;" + "Password=xxXXxx;";
    }
   public void open()
    {
        konekt.Open();
    }
   public void close()
    {
        konekt.Close();
    }
}

如果您希望open()和close()方法对所有其他类都是私有的,并且Query类继承连接类,则也可以保护它。