C# 尝试将数据表从一个窗体传递到另一个窗体时获取空引用异常

C# 尝试将数据表从一个窗体传递到另一个窗体时获取空引用异常,c#,mysql,C#,Mysql,我正在尝试将数据表从一种形式传递到另一种形式。已成功从数据库检索Datable,但程序在设备上部署时引发空引用异常错误。 我的代码 表格1: if (comboBox1.SelectedItem.ToString() == "Select by Picture") { MySqlConnection con = new MySqlConnection("server=******;port= *****;database=********;

我正在尝试将数据表从一种形式传递到另一种形式。已成功从数据库检索Datable,但程序在设备上部署时引发空引用异常错误。 我的代码

表格1

if (comboBox1.SelectedItem.ToString() == "Select by Picture")
            {
                MySqlConnection con = new MySqlConnection("server=******;port= *****;database=********;User Id=root;Password=;");
                MySqlDataAdapter d_a = new MySqlDataAdapter("Select Picture From sampledata", con);
                DataTable d_t = new DataTable();
                d_a.Fill(d_t);
                int count = d_t.Rows.Count;
                PictureSelection ps = new PictureSelection();
                if (count > 0)
                ps.Storelist.Items.Clear();
                for (int i=0 ; i <count; i++)
                {
                    ps.Storelist.Items.Add(d_t.Rows[i][0].ToString());
                }
                ps.ShowDialog();
            }
            else if (comboBox1.SelectedItem.ToString() == "Select by Artist Name")
            {
                MySqlConnection con = new MySqlConnection("server=*****;port= ****;database=*****;User Id=root;Password=;");
                MySqlDataAdapter d_a = new MySqlDataAdapter("Select Artist Name From sampledata", con);
                DataTable d_t = new DataTable();
                d_a.Fill(d_t);
                int count = d_t.Rows.Count;
                PictureSelection ps = new PictureSelection();
                if (count > 0)
                ps.Storelist.Items.Clear();
                for (int i = 0; i < count; i++)
                {
                    ps.Storelist.Items.Add(d_t.Rows[i][0].ToString());
                }
                ps.ShowDialog();
            }
        }

任何帮助都将不胜感激。

您必须从表格1中设置数据表:

ps.Storelist.Datasource = d_t;
ps.ShowDialog();

因为form2没有datatable的定义,因此会发生错误。

使用全局变量的相同名称声明局部变量不会使两者相同,并且局部变量无法从其他类访问。
ps.Storelist.Datasource = d_t;
ps.ShowDialog();