我正在尝试学习WPF,并尝试使用MySQL数据库中的数据填充WPF DataGrid。相关代码是:
dataGrid.DataContext = myMySQL.DBDataSet;
dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName];
dataGrid是一个WPF DataGrid控件。 myMySQL.DBDataSet是一个System.Data.DataSet。我在上面的第二行代码中得到以下错误。
“无法将类型'System.Data.DataTable'隐式转换为 'System.Collections.IEnumerable'。存在显式转换(是 你错过了一个演员?)“
是的,我可能需要演员。我很高兴听到存在明确的转换。但是我如何确定我需要什么样的演员? '(System.Collections.IEnumerable)'显然不起作用。 'ItemsSource'的类型似乎是'System.Windows.Controls.ItemsControl'。但是强制转换(System.Windows.Controls.ItemsControl)也不起作用。我不知道在哪里寻找解释如何转换此DataTable来纠正此错误。你能救我吗?
答案 0 :(得分:1)
尝试将DataTable的DefaultView分配给ItemsSource。
dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName].DefaultView;
答案 1 :(得分:1)
private DataTable GetNewStaffCode()
{
Mod_Staff stafmodules = new Mod_Staff();
staffcode = txtStaffCode.Text.ToString();
DataTable dtstaffcode=stafmodules.GetNewStaffCode(staffcode);
for (int j = 0; j < dtstaffcode.Rows.Count; j++)
{
staffcode ="ST"+ Convert.ToString(j);
}
错误讯息是:
Cannot implicitly convert type 'System.Data.DataTable' to 'string'
并且
Real_Estate_Management_System.StaffEntry.GetNewStaffCode()': not all code paths return a value D:\Shwe Ain Real Estate Management\Real Estate Management By May Mee Tun\Real_Estate_App\Real_Estate_Management_System\Real_Estate_Management_System\UI\StaffEntry.cs 329 30 Real_Estate_Management_System
txtStaffCode.Refresh();
}
public DataTable GetNewStaffCode(string staffcode)
{
String query = "Select staff_code from tblStaffType";
if (CN.State == ConnectionState.Closed) CN.Open();
SqlCommand cmd = new SqlCommand(query, CN);
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(dt);
return dt;
}