Я пытаюсь написать простое приложение UWP в С#. После нажатия кнопки он должен подключиться к удаленной базе данных MySQL и опубликовать результат в виде сетки. Поскольку это должно быть приложение UWP, BindigSource и DataSource не работают. Какие изменения я должен был внести в это приложение в UWP?
public sealed partial class MainPage : Page
{
const string connString = "server=server_name; user id=uid; pwd=mypassword; persistsecurityinfo=True; database=mydb";
string loadQuery = "SELECT * FROM table_name;";
public MainPage()
{
this.InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter();
mySqlDataAdapter.SelectCommand = new MySqlCommand(loadQuery, conn);
DataTable dataTable = new DataTable();
mySqlDataAdapter.Fill(dataTable);
BindingSource bindingSource = new BindingSource();
gridView1.DataSource = bindingSource;
mySqlDataAdapter.Update(dataTable);
conn.Close();
}
}
UWP GridView
очень отличается от того, который используется в Windows Forms. Хотя Windows Forms GridView
представляет собой таблицу, похожую на Excel, в UWP это список элементов, отображаемых в сетке. Существует еще концепция строк и столбцов, но сами элементы не заботятся о строке или столбце, в котором они находятся, а элементы в строке или столбце не связаны логически.
Для вашего использования используется табличный дисплей, который недоступен в UWP SDK из коробки. К счастью, однако, вы можете найти много отличного контроля в режиме онлайн. В верхней части моего разума вы можете заглянуть в пользовательский интерфейс Telerik для UWP, в частности, с его грид-контролем. Это должно дать вам все, что вам нужно для реализации вашего сценария.
//Попробуй это. Это сработало для меня..
public void getData()
{
const string connString = "YOUR CONNECTION SETTINGS HERE";
Connection = new MySqlConnection(connString);
Connection.Open();
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter("YOUR QUERY HERE", Connection);
DataSet DS = new DataSet();
mySqlDataAdapter.Fill(DS);
gridView1.DataSource = DS.Tables[0];
Connection.Close();
}