C# 中也简单。 您只需要一个 < code> Form1 code > 实例, 然后您就可以在那个例子中调用这个方法 。
不过,还有一个更好的方法。 这个代码实际上不是“ 归属于” 格式。 格式是用于 UI 互动的, 而不是用于商业逻辑和数据访问。 您最好将这个代码移动到一个共同的位置, 用两种格式都可以访问 。
创建数据访问类。 类似 :
public class StudentRepository
{
public static object GetStudents()
{
using (var DB = new myView1())
{
var studentList = (from s in DB.View123
select new { s.StudentName, s.StudentNumber, s.ClassName, s.StreamName, s.ParentName }).ToList();
dataGridViewStudents.DataSource = students;
return students.ToList();
}
}
}
请注意,该方法现在是 stistic
, 这意味着不需要使用实例。 (这就像VB中的 shared
关键字。 ) 因此,您的表格可以调用 :
var students = StudentRepository.GetStudents();
您想要修正的另一件事是返回类型。 object
不是非常具体。 您应该有一个 Student
类, 并且该方法应该返回 Iliist< student>
。 类似 :
public class Student
{
public string StudentName { get; set; }
public int StudentNumber { get; set; }
public string ClassName { get; set; }
public string StreamName { get; set; }
public string ParentName { get; set; }
}
并且:
public class StudentRepository
{
public static IList<Student> GetStudents()
{
using (var DB = new myView1())
{
var studentList = (from s in DB.View123
select new Student { StudentName = s.StudentName, StudentNumber = s.StudentNumber, ClassName = s.ClassName, StreamName = s.StreamName, ParentName = s.ParentName }).ToList();
dataGridViewStudents.DataSource = students;
return students.ToList();
}
}
}
我对字段的类型做了一些假设, 如果错误的话, 您应该能够纠正这些类型 。 您甚至可能想要它返回一个 IIenumberable< students> code >, 而不是 liliist< student> code >, 如果它是一个不变的结果( 也就是说, 如果它只是学生的点数而不是要添加、 删除的列表) 。
您可以在这里做更多的工作,例如为其他数据元素(例如 Class
(可能需要一个不同的名称,只是为了清理)、 Parent
, Stream
, >, Stream
>,等等(想想看,其中一些可能需要更好的名称。你的变量命名一般需要做一点工作。诸如 Form1
或 myVivo1
之类的东西并不能很好地表达意向。 )