我正在检索Ms.Access文件的数据表格,但它显示我的文件名如何解决?

时间:2012-10-12 15:01:43

标签: c# c#-4.0 c#-3.0

我想通过列表从MS.Access中检索数据但是在运行应用程序时它会显示所有条目,但只是文件名,如Student.StudentInformation我不知道为什么然后当我选择第一个条目时我会告诉我textBox中的正确数据? 我的查询是:

public ICollection<StudentInformation> GetStudents()
   {
        OleDbConnection con = new OleDbConnection(connectionString);
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "SELECT * FROM Students";

       ObservableCollection<StudentInformation> students = new ObservableCollection<Student>();
       try
       {
           con.Open();
           OleDbDataReader reader = cmd.ExecuteReader();
           while (reader.Read())
           {
               Student aStudent = new Student(Convert.ToInt32(reader["StudentID"]),
                                               reader["StudentName"].ToString(),
                                               reader["StudentEmail"].ToString());

               students.Add(aStudent);
           }
           reader.Close();
           return students;
       }
       finally
       {
           con.Close();
       }
   }

在学生信息类中,我确实设置了两个构造函数。一个是默认构造函数,第二个传递值。

我在列表框中显示:

private ICollection<StudentInformation> students;
 private void BtnGetStudent_Click(object sender, RoutedEventArgs e)
    {
        students = StudentDb.GetStudents();
        Studentlst.ItemsSource = students;
    }

它显示了像Student.StudentInformation这样的列表 如何解决?

1 个答案:

答案 0 :(得分:1)

这似乎是一个演示问题。您应该解释一下WPF(您正在使用WPF,对吧?)如何显示StudentInformation

作为一种简单的解决方法,您可以为ToString()重载函数StudentInformation,但更好的解决方案是为其编写DataTemplate。 (你知道怎么做吗?)

除了注释:在UI线程中访问数据库不是一个好主意,这会在查询期间阻止您的UI。