SqlDataReader reader = Command.ExecuteReader();//结果集放到reader对象中 object[] row = new object[reader.FieldCount]; while(reader.Read()==true) {
reader.GetValues(row); //获取结果集的当前行 for (int i = 0; i < reader.FieldCount; i++) {
listBox1.Items.Add(row[i].ToString()); //将逐项输出行中的项 }
listBox1.Items.Add(\
主意方法:GetName(n)方法 返回n +1列的字段名称。 GetValue(int n)方法
返回当前行中第n+1列的内容。由Read()方法决定当前行。 GetValues() FieldCount属性 返回字段的数目。
13、treeview应用,书上的案例。 14、方法委托程序 *
定义一个有学生类——student类,然后定义一个方法fun(),通过委托实现方法回调,使之既能求出成绩好的学生,也能求成绩差的学生。 class student
{ private string name; //姓名 private double score; //成绩
public student(string name, double score) //定义构造函数,以初始化姓名和成绩 { this.name = name; this.score = score; }
public void showInfo() //显示学生信息
{ Console.WriteLine(\姓名:{0},\\t成绩:{1}\ } public static object max(object obj1, object obj2) //求最大者(静态方法) { student st1 = (student)obj1; student st2 = (student)obj2;
if (st1.score > st2.score) return st1; return st2; }
public static object min(object obj1, object obj2) //求最小者(静态方法) { student st1 = (student)obj1; student st2 = (student)obj2;
if (st1.score > st2.score) return st2; return st1; } }
//声明委托类型,它可以关联静态方法student.max()和student.min() delegate object xnDelegate(object o1, object o2);
//以委托作为参数,定义方法fun(),以求st1和st2中成绩较好或较差的学生 static student fun(student st1, student st2, xnDelegate fxn) {
return (student)fxn(st1, st2); }
static void Main(string[] args)
{ student[] sts = //创建学生对象数组
{ new student(\ new student(\ new student(\ new student(\ new student(\ };
//创建委托对象mx,它关联静态方法student.max xnDelegate mx = new xnDelegate(student.max); //创建委托对象mn,它关联静态方法student.min xnDelegate mn = new xnDelegate(student.min); student maxst, minst;
maxst = minst = sts[0]; sts[0].showInfo();
//利用fun()方法求成绩最好的学生和成绩最差的学生 for (int i = 1; i < sts.Length; i++) {
sts[i].showInfo();
maxst = fun(maxst, sts[i], mx); minst = fun(minst, sts[i], mn); }
Console.WriteLine(\
Console.WriteLine(\成绩最好的学生:\ maxst.showInfo();
Console.WriteLine(\ Console.WriteLine(\成绩最差的学生:\ minst.showInfo(); Console.ReadKey(); } } }