使用DataReader读取数据即查询所有学生
2013-06-07 08:56
267 查看
一:这次主要整理上次课在学生信息管理中添加一个学生列表,并显示处理
即在
显示如下:
二:具体操作如下:
首先在数据访问层添加查询所有学生的功能:
代码如下:
为啦便于代码的复用,特抽出一个DbHelper类,实现与数据库的连接:
然后在业务逻辑层调用数据访问层的显示所有学生的功能:
最后在用户界面层学生列表窗口下,双击button1,实现调用业务逻辑层:
还忘啦一点就是,调用get set方法,在实体类中封装字段
为了提高代码的复用,顾将studentDal.cs与数据库连接的代码放到DbHelper.cs中
DbHelper.cs如下:
即在
显示如下:
二:具体操作如下:
首先在数据访问层添加查询所有学生的功能:
代码如下:
//查询所有学生 public List<Student> getAll() { List<Student> list = new List<Student>(); string s = "server=.;database=SampleDb;Integrated Security=true;"; SqlConnection conn = new SqlConnection(s); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select * from student"; cmd.Connection = conn; conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Student student = new Student(); student.Id = (string)reader["id"]; student.Name = (string)reader["name"]; student.Gender = (string)reader["gender"]; student.Major = (string)reader["major"]; student.Grade = (int)reader["grade"]; student.TheClass = (int)reader["class"]; list.Add(student); } reader.Close(); conn.Close(); return list; }
为啦便于代码的复用,特抽出一个DbHelper类,实现与数据库的连接:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace MySchoolDAL { public class DbHelper { public static void myExecute(string sql) { string s = "server=.;database=SampleDb;Integrated Security=true;"; SqlConnection conn = new SqlConnection(s); SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } } }
然后在业务逻辑层调用数据访问层的显示所有学生的功能:
public List<Student> getALl() { StudentDal dal = new StudentDal(); return dal.getAll(); }
最后在用户界面层学生列表窗口下,双击button1,实现调用业务逻辑层:
private void 查看_Click(object sender, EventArgs e) { StudentBll bll = new StudentBll(); List<Student> list = bll.getALl(); gride.DataSource = list; }
还忘啦一点就是,调用get set方法,在实体类中封装字段
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MySchoolEntity { public class Student { public string Id { get; set; } public string Name { get; set; } public string Gender { get; set; } public string Major { get; set; } public int Grade { get; set; } public int TheClass { get; set; } } }
为了提高代码的复用,顾将studentDal.cs与数据库连接的代码放到DbHelper.cs中
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using MySchoolEntity; namespace MySchoolDAL { public class StudentDal { public void insert(Student student) { string sql = string.Format("insert into Student(Id,Name,Gender,Major,Grade,Class) values('{0}','{1}','{2}','{3}',{4},{5})", student.Id, student.Name,student.Major, student.Gender, student.Grade, student.TheClass); DbHelper.myExecute(sql); } public void delete(string id) { string sql = string.Format("delete from student where id='{0}'", id); DbHelper.myExecute(sql); } //查询所有学生 public List<Student> getAll() { List<Student> list = new List<Student>(); SqlConnection conn = DbHelper.createConnection(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select * from student"; cmd.Connection = conn; conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Student student = new Student(); student.Id = (string)reader["id"]; student.Name = (string)reader["name"]; student.Gender = (string)reader["gender"]; student.Major = (string)reader["major"]; student.Grade = (int)reader["grade"]; student.TheClass = (int)reader["class"]; list.Add(student); } reader.Close(); conn.Close(); return list; } } }
DbHelper.cs如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace MySchoolDAL { public class DbHelper { public static void myExecute(string sql) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = connStr; SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } public static SqlConnection createConnection() { string connStr = "server=.;database=SampleDb;Integrated Security=true;"; return new SqlConnection(connStr); } } }
相关文章推荐
- j2se使用数据模型和JTable完成数据库读取和查询操作
- 使用集合操作思路,查询选修了CS305,但没有选修CS315的所有学生信息
- 使用Java程序一次分段读取所有数据(如海量数据)并计数处理
- 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名
- 数据库SQLite 数据大量存储 和快速读取 链表查询的优化 使用gosn
- postgresql数据库使用函数查询所有符合条件的表名,以及删除所有查询到的表的数据
- information_schema数据库的使用 ->查询一个数据的所有记录总数
- 使用SQL查询所有数据库名和表名
- 使用Java程序一次分段读取所有数据(如海量数据)并计数处理
- content provider 的query使用查询系统数据,获取所有音乐的title
- tp5中从两个表中读取数据(不使用连接查询)
- Oracle使用游标查询所有数据表备注
- Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串
- C#不使用DataSet操作XML,XmlDocument读写xml所有节点及读取xml节点的数据总结
- 请使用PL/SQL来按父子层次关系查询出表的所有数据
- vbs中使用 ADO 读取所有数据均在一行上的文本文件的代码
- Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串
- 2.非关系型数据库(Nosql)之mongodb:mongodb显示所有数据库,使用数据库,集合创建(显示和隐式创建),集合查询,初步数据的增删改查,分页
- xmemcached使用,并读取memcached服务器上所有的缓存数据
- 使用MyBatis(三)使用xml查询表中所有数据