代码之家  ›  专栏  ›  技术社区  ›  Domica

C#仅运行main()类

  •  -5
  • Domica  · 技术社区  · 7 年前
    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 回复  |  直到 7 年前
        1
  •  1
  •   P.N.    7 年前

    您需要在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();
            }
    
          }
    }
    
        2
  •  1
  •   Community paulsm4    4 年前

    好的,我想是时候解释一下了。首先,一些术语。 Main Insert Program .

    什么是功能?

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

    为什么Main运行时不调用它?

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

    在哪里可以调用函数?

    可以 我调用 主要的 ?

    当然但要知道,这意味着重新执行它。

    应该 我调用 主要的 ?

    这可能是一个讨论主题。在我看来,你永远不应该调用 主要的 ,因为它非常危险。你可以很容易地创建一个无限循环,这很难避免。此外,这并没有给你带来很大的优势。老实说,我从来没有看到过一个节目会重新播放 主要的 .

    希望你现在理解了,以后可以问更多有帮助的问题。

        3
  •  0
  •   user3344460 user3344460    7 年前

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

    祝你好运