C#MySQL数据库相关

C#MySQL数据库相关,c#,mysql,database,C#,Mysql,Database,我想要实现的是从我的第一个表单自动将数据输入MySQL数据库 RegistryKey rk = Registry.CurrentUser; rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false); PrintKeys(rk); rk.Close(); void PrintKeys(RegistryKey rk)

我想要实现的是从我的第一个表单自动将数据输入MySQL数据库

        RegistryKey rk = Registry.CurrentUser;
        rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false);
        PrintKeys(rk);
        rk.Close();

        void PrintKeys(RegistryKey rk)
        {
        if (rk == null)
        {
            richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n";
            return;
        }

        richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n");

        try
        {
            string[] valnames = rk.GetValueNames();

            foreach (string s in valnames)
            {
                //int i = richTextBoxBrowsing.SelectionStart;
                string val = (string)rk.GetValue(s);
                richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n");
                richTextBoxBrowsing.AppendText(s + "\n");
                richTextBoxBrowsing.AppendText(val + "\n");

                //create a MySQL connection with a query string
                MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost");

                //open the connection
                myConn.Open();

                MySqlCommand myCommand = myConn.CreateCommand();

                myCommand.CommandText =
                "insert into browsing_history (unique_id, url)"
                + " values "
                + "('" + s + "', '" + val + "')";

                MySqlDataReader myResult = myCommand.ExecuteReader();

                //close the connection
                myConn.Close();
            }
        }

        catch (Exception MyError)
        {
            richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n");
        }
    }
现在,我只能在单击此表单时将数据输入数据库。如何在第一个表单中自动保存所有数据,而无需单击每个表单来保存数据?有人能帮忙吗

        RegistryKey rk = Registry.CurrentUser;
        rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false);
        PrintKeys(rk);
        rk.Close();

        void PrintKeys(RegistryKey rk)
        {
        if (rk == null)
        {
            richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n";
            return;
        }

        richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n");

        try
        {
            string[] valnames = rk.GetValueNames();

            foreach (string s in valnames)
            {
                //int i = richTextBoxBrowsing.SelectionStart;
                string val = (string)rk.GetValue(s);
                richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n");
                richTextBoxBrowsing.AppendText(s + "\n");
                richTextBoxBrowsing.AppendText(val + "\n");

                //create a MySQL connection with a query string
                MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost");

                //open the connection
                myConn.Open();

                MySqlCommand myCommand = myConn.CreateCommand();

                myCommand.CommandText =
                "insert into browsing_history (unique_id, url)"
                + " values "
                + "('" + s + "', '" + val + "')";

                MySqlDataReader myResult = myCommand.ExecuteReader();

                //close the connection
                myConn.Close();
            }
        }

        catch (Exception MyError)
        {
            richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n");
        }
    }
提前谢谢

        RegistryKey rk = Registry.CurrentUser;
        rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false);
        PrintKeys(rk);
        rk.Close();

        void PrintKeys(RegistryKey rk)
        {
        if (rk == null)
        {
            richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n";
            return;
        }

        richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n");

        try
        {
            string[] valnames = rk.GetValueNames();

            foreach (string s in valnames)
            {
                //int i = richTextBoxBrowsing.SelectionStart;
                string val = (string)rk.GetValue(s);
                richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n");
                richTextBoxBrowsing.AppendText(s + "\n");
                richTextBoxBrowsing.AppendText(val + "\n");

                //create a MySQL connection with a query string
                MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost");

                //open the connection
                myConn.Open();

                MySqlCommand myCommand = myConn.CreateCommand();

                myCommand.CommandText =
                "insert into browsing_history (unique_id, url)"
                + " values "
                + "('" + s + "', '" + val + "')";

                MySqlDataReader myResult = myCommand.ExecuteReader();

                //close the connection
                myConn.Close();
            }
        }

        catch (Exception MyError)
        {
            richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n");
        }
    }

嗯。。。一些背景可能会有所帮助。从您所说的内容来看,即使是在您的表单上,发布的代码也像是在一次点击中发生的

        RegistryKey rk = Registry.CurrentUser;
        rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false);
        PrintKeys(rk);
        rk.Close();

        void PrintKeys(RegistryKey rk)
        {
        if (rk == null)
        {
            richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n";
            return;
        }

        richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n");

        try
        {
            string[] valnames = rk.GetValueNames();

            foreach (string s in valnames)
            {
                //int i = richTextBoxBrowsing.SelectionStart;
                string val = (string)rk.GetValue(s);
                richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n");
                richTextBoxBrowsing.AppendText(s + "\n");
                richTextBoxBrowsing.AppendText(val + "\n");

                //create a MySQL connection with a query string
                MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost");

                //open the connection
                myConn.Open();

                MySqlCommand myCommand = myConn.CreateCommand();

                myCommand.CommandText =
                "insert into browsing_history (unique_id, url)"
                + " values "
                + "('" + s + "', '" + val + "')";

                MySqlDataReader myResult = myCommand.ExecuteReader();

                //close the connection
                myConn.Close();
            }
        }

        catch (Exception MyError)
        {
            richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n");
        }
    }
如果您只是想在表单加载时立即执行,那么将代码放在表单的onLoad事件中(双击表单标题栏以进入onLoad事件)

        RegistryKey rk = Registry.CurrentUser;
        rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false);
        PrintKeys(rk);
        rk.Close();

        void PrintKeys(RegistryKey rk)
        {
        if (rk == null)
        {
            richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n";
            return;
        }

        richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n");

        try
        {
            string[] valnames = rk.GetValueNames();

            foreach (string s in valnames)
            {
                //int i = richTextBoxBrowsing.SelectionStart;
                string val = (string)rk.GetValue(s);
                richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n");
                richTextBoxBrowsing.AppendText(s + "\n");
                richTextBoxBrowsing.AppendText(val + "\n");

                //create a MySQL connection with a query string
                MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost");

                //open the connection
                myConn.Open();

                MySqlCommand myCommand = myConn.CreateCommand();

                myCommand.CommandText =
                "insert into browsing_history (unique_id, url)"
                + " values "
                + "('" + s + "', '" + val + "')";

                MySqlDataReader myResult = myCommand.ExecuteReader();

                //close the connection
                myConn.Close();
            }
        }

        catch (Exception MyError)
        {
            richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n");
        }
    }

如果这还不够,请更详细/具体地说明您正在尝试做什么。

我有一些包含数据的表单。我想将所有数据自动放入MySQL数据库,而不必单击每个表单。根据您所说的,要放入onLoad事件,这意味着我只能在单击该表单时输入数据。@athgap:如果您描述了应用程序的布局方式,那么提供解决方案可能会更容易。您可能希望创建一个对象,其任务是将数据写入数据库,然后在每个窗体上都有该对象的实例。在每种形式中,您都可以有一个计时器,该计时器将定期调用该对象上的必要方法,以将数据插入数据库。
        RegistryKey rk = Registry.CurrentUser;
        rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false);
        PrintKeys(rk);
        rk.Close();

        void PrintKeys(RegistryKey rk)
        {
        if (rk == null)
        {
            richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n";
            return;
        }

        richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n");

        try
        {
            string[] valnames = rk.GetValueNames();

            foreach (string s in valnames)
            {
                //int i = richTextBoxBrowsing.SelectionStart;
                string val = (string)rk.GetValue(s);
                richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n");
                richTextBoxBrowsing.AppendText(s + "\n");
                richTextBoxBrowsing.AppendText(val + "\n");

                //create a MySQL connection with a query string
                MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost");

                //open the connection
                myConn.Open();

                MySqlCommand myCommand = myConn.CreateCommand();

                myCommand.CommandText =
                "insert into browsing_history (unique_id, url)"
                + " values "
                + "('" + s + "', '" + val + "')";

                MySqlDataReader myResult = myCommand.ExecuteReader();

                //close the connection
                myConn.Close();
            }
        }

        catch (Exception MyError)
        {
            richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n");
        }
    }