How should I cast a DataTable for assignment to Da

2019-03-03 18:26发布

I am trying to learn WPF, and trying to populate a WPF DataGrid with data from a MySQL database. The relevant code is:

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

dataGrid is a WPF DataGrid control. myMySQL.DBDataSet is a System.Data.DataSet. I get the following error on the second line of code above.

"Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'. An explicit conversion exists (are you missing a cast?)"

Yes, I probably need a cast. I am glad to hear that an explicit conversion exists. But how do I determine what cast I need? '(System.Collections.IEnumerable)' obviously doesn't work. The type of 'ItemsSource' seems to be 'System.Windows.Controls.ItemsControl'. But cast (System.Windows.Controls.ItemsControl) doesn't work either. I have no idea where else to look for an explanation of how to cast this DataTable to correct this error. Can you help me?

2条回答
时光不老,我们不散
2楼-- · 2019-03-03 19:07

Try assign DefaultView of DataTable to ItemsSource.

dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName].DefaultView;
查看更多
混吃等死
3楼-- · 2019-03-03 19:19
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);
           }

The Error Message are:

Cannot implicitly convert type 'System.Data.DataTable' to 'string'

And

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;
    }
查看更多
登录 后发表回答