C#只运行main()类

时间:2018-02-18 12:38:53

标签: c# main

namespace ConsoleApp5
{
class Program
{
    private static MySqlConnection connection;
    private static string server;
    private static string database;
    private static string uid;
    private static string password;


    public static void Main(string[] args)
    {

        server = "localhost";
        database = "database";
        uid = "domica";
        password = "domica";
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" +
        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

        connection = new MySqlConnection(connectionString);
        connection.Open();
    }
    public static void Insert()
    {
        Console.Write("Ukucaj nesto:");
        var kucaj = Console.ReadLine();
        string query = "INSERT INTO table1 (Ci) VALUES (@tt);";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.Parameters.AddWithValue("@tt", kucaj);
        cmd.ExecuteNonQuery();
    }

  }
}

这是我的代码,我有一个简单的问题。那段代码不起作用。 Main()部分可以工作,但Insert()类永远不会运行。如果我将所有内容放在Main()类中,它将全部工作,但我不希望这样。我尝试将其转换为构建为类库,而不是控制台应用程序,我只是得到一个错误,说这是不可能的。感谢

3 个答案:

答案 0 :(得分:1)

您需要在Main方法中调用Insert()方法。

namespace ConsoleApp5
{
    class Program
    {
        private static MySqlConnection connection;
        private static string server;
        private static string database;
        private static string uid;
        private static string password;

        public static void Main(string[] args)
        {

            server = "localhost";
            database = "database";
            uid = "domica";
            password = "domica";
            string connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
            database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            connection = new MySqlConnection(connectionString);
            connection.Open();

            Insert();
        }
        public static void Insert()
        {
            Console.Write("Ukucaj nesto:");
            var kucaj = Console.ReadLine();
            string query = "INSERT INTO table1 (Ci) VALUES (@tt);";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@tt", kucaj);
            cmd.ExecuteNonQuery();
        }

      }
}

答案 1 :(得分:1)

好的,我认为是时候进行一些解释了。首先,一些术语。 MainInsert被称为函数或方法。您计划中唯一的课程是Program

什么是功能?

函数是(相对)小块代码,用于更好地组织程序。当您需要重复执行相同的操作(或非常类似的操作)时,可以重复使用它们。可以使用参数轻微更改和自定义其操作以满足特定需求。必须调用(调用)每个函数才能运行它。 Main也是一种方法。

为什么Main运行时没有调用它?

Main被称为程序的入口点,因为它是程序自动调用的唯一函数。在Main内,您可以调用已定义的其他函数。

我在哪里可以调用函数?

您可以在另一个函数内调用函数。你甚至可以在其内部调用一个函数(称为递归的过程),只需确保创建退出条件,这样就不会有无限循环。

可以我调用Main

当然。但请注意,这意味着重新执行它。

应该我调用Main

这可能是一个讨论主题。从我的角度来看,你永远不应该调用Main,因为它非常危险。你可以很容易地创建一个无限循环,很难避免这种情况。而且,它并没有给你带来很大的好处。说实话,我从未见过重新调用Main的程序。

希望您现在明白,将来可以提出更多有用的问题。

答案 2 :(得分:0)

每次都必须调用每个和新函数。在Insert()函数中connection.Open();之后致电private static void Main(string[] args) { ... }

祝你好运