C# 如何在WPF应用中将MySQL表绑定到datagrid
我经常遇到这个问题,但似乎找不到令人满意的答案。我在c中有一个WPF应用程序,它连接到一个远程MySQL数据库。我的目标是从数据库中选择一个表,并将其显示在datagrid中。但在此之后,我希望能够使用给定的报告定义文件打印选定的行。所以我对一种填充datagrid的方法感兴趣,因为我知道mysql语句是必需的,而不必在本地存储mysql表,比如说ObservableCollection。我只是想看看所需的表中有什么,然后能够分别读取每条记录,以填写rdlc文件中定义的模板。如何做到这一点?我从事MVVM架构。非常感谢C# 如何在WPF应用中将MySQL表绑定到datagrid,c#,mysql,wpf,mvvm,wpfdatagrid,C#,Mysql,Wpf,Mvvm,Wpfdatagrid,我经常遇到这个问题,但似乎找不到令人满意的答案。我在c中有一个WPF应用程序,它连接到一个远程MySQL数据库。我的目标是从数据库中选择一个表,并将其显示在datagrid中。但在此之后,我希望能够使用给定的报告定义文件打印选定的行。所以我对一种填充datagrid的方法感兴趣,因为我知道mysql语句是必需的,而不必在本地存储mysql表,比如说ObservableCollection。我只是想看看所需的表中有什么,然后能够分别读取每条记录,以填写rdlc文件中定义的模板。如何做到这一点?我从
DataTable dt = new DataTable();
using (MySqlConnection conn = new MySqlConnection("Your connection string"))
{
conn.Open();
string query = "SELECT * FROM table";
using (MySqlDataAdapter da = new MySqlDataAdapter(query, conn))
da.Fill(dt);
}
yourDataGrid.ItemsSource = dt.DefaultView;
这是我知道的用数据库值填充DataGrid的代码
至于印刷,它有点先进。我认为你应该考虑一下谷歌会议。
这是我知道的用数据库值填充DataGrid的代码
至于印刷,它有点先进。我认为你应该考虑一个谷歌会话。 < P>我改变了DimaA的回答有点适合MVVMLIGHT模式: 在ViewModel中: 1.申报财产:
private DataView tableFromMySql;
public DataView TableFromMySql
{
get { return tableFromMySql; }
set
{
if (tableFromMySql == value)
return;
tableFromMySql = value;
RaisePropertyChanged("TableFromMySql");
}
}
DataTable dt = new DataTable();
using (MySqlConnection Conn = new MySqlConnection(connectionStr))
{
Conn.Open();
string cmdStr = string.Format("{0} `{1}`", "SELECT * FROM", "yourtable");
using (MySqlCommand cmdSel = new MySqlCommand(cmdStr, Conn))
using (MySqlDataAdapter da = new MySqlDataAdapter(cmdSel))
da.Fill(dt);
}
TableFromMySql = dt.DefaultView;
2.将MySQL表分配给此属性:
private DataView tableFromMySql;
public DataView TableFromMySql
{
get { return tableFromMySql; }
set
{
if (tableFromMySql == value)
return;
tableFromMySql = value;
RaisePropertyChanged("TableFromMySql");
}
}
DataTable dt = new DataTable();
using (MySqlConnection Conn = new MySqlConnection(connectionStr))
{
Conn.Open();
string cmdStr = string.Format("{0} `{1}`", "SELECT * FROM", "yourtable");
using (MySqlCommand cmdSel = new MySqlCommand(cmdStr, Conn))
using (MySqlDataAdapter da = new MySqlDataAdapter(cmdSel))
da.Fill(dt);
}
TableFromMySql = dt.DefaultView;
在你看来:
将TableFromMySql绑定到DataGrid的ItemsSource,那么您的表就会显示在DataGrid中。我稍微更改了DeMama的答案,以适应MvvmLight模式: 在ViewModel中: 1.申报财产:
private DataView tableFromMySql;
public DataView TableFromMySql
{
get { return tableFromMySql; }
set
{
if (tableFromMySql == value)
return;
tableFromMySql = value;
RaisePropertyChanged("TableFromMySql");
}
}
DataTable dt = new DataTable();
using (MySqlConnection Conn = new MySqlConnection(connectionStr))
{
Conn.Open();
string cmdStr = string.Format("{0} `{1}`", "SELECT * FROM", "yourtable");
using (MySqlCommand cmdSel = new MySqlCommand(cmdStr, Conn))
using (MySqlDataAdapter da = new MySqlDataAdapter(cmdSel))
da.Fill(dt);
}
TableFromMySql = dt.DefaultView;
2.将MySQL表分配给此属性:
private DataView tableFromMySql;
public DataView TableFromMySql
{
get { return tableFromMySql; }
set
{
if (tableFromMySql == value)
return;
tableFromMySql = value;
RaisePropertyChanged("TableFromMySql");
}
}
DataTable dt = new DataTable();
using (MySqlConnection Conn = new MySqlConnection(connectionStr))
{
Conn.Open();
string cmdStr = string.Format("{0} `{1}`", "SELECT * FROM", "yourtable");
using (MySqlCommand cmdSel = new MySqlCommand(cmdStr, Conn))
using (MySqlDataAdapter da = new MySqlDataAdapter(cmdSel))
da.Fill(dt);
}
TableFromMySql = dt.DefaultView;
在你看来:
将TableFromMySql绑定到DataGrid的ItemsSource,这样就可以在DataGrid中看到您的表