Variables C# UWP

本文关键字:UWP Variables | 更新日期: 2023-09-27 18:11:28

我有两个文件。需要从一个变量到另一个变量。我在定义和填充它们的文件中将它们设置为global。但是在第二个文件中,当它读取变量时,它们是空的。我该如何解决这个问题?第一个文件中的代码:

public sealed partial class NewOrder : Page
{
    public string Name1;
    public string Mob;
    public string Adres;
    public string Email;
    public string telephone; 

    public NewOrder()
    {
        searchButton.Click += async delegate
 { 
        telephone = searchtext.Text;
        using (MySqlConnection connection = new MySqlConnection("...."))
        {
            connection.Open();
            MySqlCommand createCommand = new MySqlCommand(
                "SELECT * FROM customers WHERE mob LIKE N'" + telephone + "'", connection);
            EncodingProvider ppp;
            ppp = CodePagesEncodingProvider.Instance;
            System.Text.Encoding.RegisterProvider(ppp);
            MySqlDataReader reader = createCommand.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Name1 = reader.GetString(1);
                    Mob = reader.GetString(2);
                    Adres = reader.GetString(3);
                    Email = reader.GetString(4);
                }
            }
        }
    }
}
}
第二个文件中的代码:
public sealed partial class Details : Page
{         
    public Details()
    {
        this.InitializeComponent();
        NewOrder A = new NewOrder();
        name.Text = A.Name1;
        tel.Text = A.Mob;
        adres.Text = A.Adres;
        email.Text = A.Email;                       
    }                   
}

这就是我看到的。
例外是:name.Text = A.Name1;

类型为'System '的异常。参数nullexception '发生在Mscorlib.ni.dll,但未在用户代码中处理

附加信息:值不能为空。

Variables C# UWP

用这个替换你的代码,

    public string Name1 = string.Empty;
    public string Mob = string.Empty;
    public string Adres = string.Empty;
    public string Email = string.Empty;
    public string telephone = string.Empty;

除了分配不好的形式,在构造函数中读取sql,不在构造函数中初始化您的单元变量,不使用单独的方法来读取db,以某种方式让您知道读取是否成功,对于集合中的每一行,您将覆盖您的类变量(应该是一个列表)并且没有异常处理…

原因似乎是您没有将任何数据读取到变量中,因此它们可能为空。如果这是您的预期设计,那么您应该取消检查,因为您可能没有数据或其他一些问题导致阅读器。HasRows必须为false(就像你试图读取db时抛出了一个异常)。

if (A.Name1 != null)
{
   name.Text = A.Name1;
}