我应该怎么投的DataTable用于分配给DataGrid.ItemsSource?(How sho

2019-07-30 14:50发布

我想学习WPF,并试图填充一个WPF的DataGrid从一个MySQL数据库中的数据。 相关的代码是:

        dataGrid.DataContext = myMySQL.DBDataSet;
        dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName];

的数据网格是一个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)也不起作用。 我不知道还有什么地方去寻找如何施放此数据表来纠正这个错误的解释。 你能帮助我吗?

Answer 1:

尝试分配的DataTable的默认视图来的ItemsSource。

dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName].DefaultView;


Answer 2:

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;
    }


文章来源: How should I cast a DataTable for assignment to DataGrid.ItemsSource?