当我将用户名和密码从Form2传递到Form3时,首次运行该应用程序时,该值并未首次传递。但是,当我重新运行该应用程序时,它每次都能正常运行,并且添加成功,这对于C#和Windows编程来说确实是新的,所以请原谅任何不良的执行。流是form1-> form2-> form3

更新:
这是表格3的定义

  public partial class Form3 : Form
    {
        MySqlConnection connection;
        public string username;
        public string password;
        public Form3(string user,string pass)
        {
            username = user;
            password = pass;
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(username, password);
            string connstring = "server=localhost;user=" + username + ";database=testdb;port=3306;password=" + password + ";";
            connection = new MySqlConnection(connstring);
            connection.Open();
            string query = "INSERT INTO user_books values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "');";
            MySqlCommand newcommand = new MySqlCommand(query,connection);
            try
            {
                newcommand.ExecuteNonQuery();
                MessageBox.Show("DONE");
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.ToString());
            }
            connection.Close();

        }

        private void Form3_Load(object sender, EventArgs e)
        {
            MessageBox.Show(username, password);
        }
    }


这是form2:

 public partial class Form2 : Form
    {
        public static MySqlConnection connection;

        public string username;
        public string password;

        public Form2(string user,string pass)
        {
            InitializeComponent();
            this.Text = "MAIN MENU";
            username = user;
            password = pass;
        }

        Form3 form3 = new Form3(username,password);
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(username,password);//this lines  no longer gives an empty message box with title Error
            form3.Show();
        }
    }


这是表格1:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Text = "LOGIN";
        }

        MySqlConnection connection;
        Form2 form2;
        private void button1_Click(object sender, EventArgs e)
        {
            string username = textBox1.Text;
            string password = textBox2.Text;

            string connstring = "server=localhost;user=" + username + ";database=testdb;port=3306;password=" + password + ";";

            try
            {
                connection = new MySqlConnection(connstring);
                connection.Open();

                form2 = new Form2(username,password);
                form2.Show();
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.ToString(), "Exception");
            }
            connection.Close();
        }
    }


使用mysql和visual studio 2012

最佳答案

请给您的表格起适当的名称,并删除所有静态变量。

将Form3的创建移动到事件处理程序中,这样它将获得在单击时(而不是在构造类时)设置的用户名/密码。

关于c# - 在表单之间传递值时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20788675/

10-11 22:51
查看更多