如何解决主页中的UWP调用方法
想知道是否有人可以帮助我吗?
我的类数据库中有一个称为抓取条目的方法。我想在每次打开时从主页调用此方法。我将如何处理?不能选择DB.Grab_Entries。刷新都不是必需的,刷新之前需要调用它。我在这里错过了痛苦的显而易见的东西吗?
数据库类
namespace TestApp2
{
public static class DB
{
private static SuspendingEventHandler App_Suspending;
public static void database()
{
Application.Current.Suspending += new SuspendingEventHandler(App_Suspending);
using (SqliteConnection db = new SqliteConnection("Filename=sqliteSample.db"))
{
//Creation of the database table
db.Open();
String tableCommand1 = "CREATE TABLE IF NOT EXISTS EmployeeTable (Employee_ID INTEGER PRIMARY KEY AUTOINCREMENT,First_Name NVARCHAR(20) NULL,Last_Name NVARCHAR(40) NULL,Address NVARCHAR(50) NULL,Position NVARCHAR(20) NULL,Pay_Rate DOUBLE NULL,Tax_Code NVARCHAR(10) NULL,Sex NVARCHAR(20),NI NVACHAR(10),Emergency_Details NVARCHAR(100)";
SqliteCommand createTable = new SqliteCommand(tableCommand1,db);
try
{
createTable.ExecuteReader();
}
catch (SqliteException)
{
//Do nothing
}
}
}
private static List<Person> Grab_Entries()
{
List<Person> entries = new List<Person>();
using (SqliteConnection db = new SqliteConnection("Filename=sqliteSample.db"))
{
db.Open();
SqliteCommand selectCommand = new SqliteCommand("SELECT * from EmployeeTable",db);
SqliteDataReader query;
try
{
query = selectCommand.ExecuteReader();
}
catch (SqliteException)
{
//Handle error
return entries;
}
while (query.Read())
{
//entries.Add(query.GetString(0));
}
db.Close();
}
return entries;
}
}
}
MainPage类
namespace TestApp2
{
public sealed partial class MainPage : Page
{
List<Person> persons;
public MainPage()
{
this.InitializeComponent();
persons = new List<Person>();
}
private async void searchEmployee_Click(object sender,RoutedEventArgs e)
{
await new MessageDialog("Test").ShowAsync();
}
private void rota_Click(object sender,RoutedEventArgs e)
{
this.Frame.Navigate(typeof(Rota));
}
private void emailEmployee_Click(object sender,RoutedEventArgs e)
{
this.Frame.Navigate(typeof(email));
}
private void addEmployee_Click(object sender,RoutedEventArgs e)
{
this.Frame.Navigate(typeof(AddEmployee));
}
public void EmployeeGrid_Loaded(object sender,RoutedEventArgs e)
{
**TODO HERE**
}
}
}
解决方法
由于您设置的数据库的Grab_Entries是私有,因此该DB.Grab_Entries无法正常工作。您可以将Grab_Entries方法和Person类更改为public,然后可以使用DB.Grab_Entries
来获取数据。
如果您仍然希望保持私有状态,则可以尝试使用GetMethod查找方法,然后指定在搜索中包括非公共成员和静态成员。之后,调用该方法。例如:
using System.Reflection;
public void EmployeeGrid_Loaded(object sender,RoutedEventArgs e)
{
List<Person> MyLists = (typeof(DB).GetMethod("Grab_Entries",BindingFlags.NonPublic | BindingFlags.Static).Invoke(null,null)) as List<Person>;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。