-2

I have below code and facing issues on converting list to datatable. This line gives error. DataTable studentTable = Students;

public DataTable GetDetails()
        {

            List<Student> Students = new List<Student>(){
                new Student() { Name = "Jack", Age = 1, StudentId = 100 },
                new Student() { Name = "Smith", Age = 2, StudentId = 101 },   
                       new Student() { Name = "Smit", Age = 3, StudentId = 102 },};
            DataTable studentTable = Students;// This line gives error.
        }

        public class Student
        {
            public string Name;
            public int Age;
            public int StudentId;
        }

Please correct me.

Hardik Vinzava
  • 968
  • 10
  • 22

2 Answers2

0

Please try this. You must convert it first. C# doesn't allow you to assign different type of value to each other.

 public DataTable GetDetails()
    {

        List<Student> Students = new List<Student>(){
            new Student() { Name = "Jack", Age = 1, StudentId = 100 },
            new Student() { Name = "Smith", Age = 2, StudentId = 101 },   
                   new Student() { Name = "Smit", Age = 3, StudentId = 102 },};
        DataTable studentTable = new DataTable();// Changed
       using(var reader = ObjectReader.Create(Students)) 
          {
            studentTable.Load(reader);
          }
       return studentTable; //need it?
    }

Sorry if it doesn't work see more Here.

Community
  • 1
  • 1
Poomrokc The 3years
  • 1,099
  • 2
  • 10
  • 23
0

Instead of making lists, you should make columns and then add rows.

Studenttable.columns.add("Name", typeof(string));
Studenttable.columns.add("Agg", typeof(int));
Studenttable.columns.add("StudentID", typeof(int));

Studenttable.Rows.add("Jack",1,100);
Ruben Ravnå
  • 659
  • 7
  • 17