Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在窗体之间传递值时出错_C#_Mysql_Windows_Winforms - Fatal编程技术网

C# 在窗体之间传递值时出错

C# 在窗体之间传递值时出错,c#,mysql,windows,winforms,C#,Mysql,Windows,Winforms,在将用户名和密码从form2传递到form3时,当我第一次运行应用程序时,该值不会第一次被传递。然而,当我重新运行应用程序时,它每次都能正常工作,并且添加成功,我对c#和windows编程非常陌生,所以请原谅任何执行不力的情况。流程为form1->form2->form3 更新: 这是表格3的定义 public partial class Form3 : Form { MySqlConnection connection; public string

在将用户名和密码从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);
        }
    } 
这是表格2:

 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();
        }
    }
这是表格一:

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的创建移到事件处理程序中,这样它将获得在单击时设置的用户名/密码,而不是在构建类时设置的用户名/密码。

如何导航?表格一->表格二->表格三。给出明确的规范。最初它们不是静态的,但后来我得到了这个错误:字段初始值设定项不能引用非静态字段、方法或属性“MySQLDatabaseProject.Form2.password”使用公共属性作为变量,而不是静态的