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,但未在用户代码中处理
附加信息:值不能为空。
用这个替换你的代码,
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;
}