我是xamarin的新手,我需要轻松地将网格(或类似的东西)链接到MySql数据库表。 在WinForms中,我是通过与设计者并用几行代码放置网格来实现的,但是使用Xamarin却无能为力。 我当前的项目是带有默认“标签”预设的XamarinForm。
这是WinForm代码:
try
{
MySqlConnection cnn;
string connetionString = "server=sql7.freesqldatabase.com;database=------;port=----;uid=-------;pwd=------;";
cnn = new MySqlConnection(connetionString);
DataTable dt = new DataTable();
MySqlCommand cmd;
cnn.Open();
cmd = cnn.CreateCommand();
cmd.CommandText = "SELECT * from Products";
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
adapter.Fill(dt);
dataGridView1.DataSource = dt; //dataGridView WinFrom component
cnn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
在Xamarin中有没有办法做到这一点? (我的目标是在一个页面中显示所有数据库表)
答案 0 :(得分:0)
欢迎您!
虽然 Xamarin 可以直接将bc
用作来源,但还有另一种方法可以转换表日期并将其用于控件(例如{ {1}},DataTable
等。
例如,ItemSource可以设置如下:
CollectionView
这里DataGrid
是表数据的模型,您需要在Xamarin Forms中手动创建它。然后,应用程序将根据模型样式将表数据转换为列表数据。
MyDataGrid.ItemsSource = await TodoItemDatabase.Database.Table<TodoItem>().ToListAsync();
关于在Xamarin中使用数据库,您可以参考this official document。此处有a sample project供参考。上面的代码 TodoItemDatabase 类也基于此示例。
这是 TodoItemDatabase 类:
TodoItem
和 Constants 类,其中包含数据库名称和其他内容。
using SQLite;
public class TodoItem
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public string Notes { get; set; }
public bool Done { get; set; }
}