ListView两种读取数据库表的方式
2017-11-08 00:32
253 查看
ListView两种读取数据库表的方式
啦啦啦,学习.net不知不觉已经到了第二周,之前一直用SqlDataReader来读取数据库数据,总是觉得用习惯了一种读取方式,就懒的再学习新知识了。直到今天学习了一下后台分层开发,在封装工具类过程中,才知道using语句和SqlDataReader同时使用时候的弊端。(详见我的另一篇博客:http://blog.csdn.net/datoubangzhu/article/details/78474178),然后逼着自己又从头学习了第二种方式。现在一并进行介绍。
数据库默认使用MySql数据库。目前来看,sql server数据库里SqlDataReader和SqlCommand、SqlDateAdapter,到了MySql里,就是把前面的Sql改成MySql就行了
文末有代码中用到的两个表的建表语句
一、SqlDataReader方式获取数据库
private void ministerManager_Load(object sender, EventArgs e) { //设置表格每一列列名 this.listView1.Items.Clear(); this.listView1.Columns.Clear(); listView1.Columns.Add("编号"); listView1.Columns.Add("姓名"); listView1.Columns.Add("性别"); listView1.Columns.Add("班级"); listView1.Columns.Add("学院"); listView1.Columns.Add("原部门"); listView1.Columns.Add("qq"); listView1.Columns.Add("手机"); listView1.Columns.Add("职务"); listView1.Columns.Add("组织活动"); listView1.Columns.Add("备注"); string constr = "server=localhost;User Id=root;password=root;Database=base"; MySqlConnection mycon = new MySqlConnection(constr); //查询结果读取器 MySqlDataReader reader = null; string sqlstr = "select * from minister where status = 1"; //设置查询命令 MySqlCommand cmd = new MySqlCommand(sqlstr, mycon); //获取查询结果代码: try { //打开连接 mycon.Open(); //执行查询,并将结果返回给读取器 reader = cmd.ExecuteReader(); //开始循环遍历赋值 while (reader.Read()) { ListViewItem first = new ListViewItem(reader["id"].ToString()); first.SubItems.Add(reader["name"].ToString()); first.SubItems.Add(reader["sex"].ToString()); first.SubItems.Add(reader["class"].ToString()); first.SubItems.Add(reader["department"].ToString()); first.SubItems.Add(reader["original_department"].ToString()); first.SubItems.Add(reader["qq_number"].ToString()); first.SubItems.Add(reader["telephone_number"].ToString()); first.SubItems.Add(reader["position"].ToString()); first.SubItems.Add(reader["organizational_activities"].ToStri cd8d ng()); first.SubItems.Add(reader["other"].ToString()); //将所有的内容添加到表格内容中 this.listView1.Items.Add(first); } Console.ReadLine(); } catch (Exception exc) { } finally { reader.Close(); mycon.Close(); } }
二、DataSet数据集方式获取数据库
private void test_Load(object sender, EventArgs e) { ///防止重复加载时造成数据重复,在显示数据前将列名和数据清空 this.listView1.Items.Clear(); this.listView1.Columns.Clear(); listView1.Columns.Add("编号"); listView1.Columns.Add("姓名"); listView1.Columns.Add("性别"); listView1.Columns.Add("班级"); listView1.Columns.Add("学院"); listView1.Columns.Add("原部门"); listView1.Columns.Add("qq"); listView1.Columns.Add("手机"); listView1.Columns.Add("职务"); listView1.Columns.Add("组织活动"); listView1.Columns.Add("备注"); //查询结果读取器 //MySqlDataReader reader = null; string sqlstr = "select * from minister where status = 1"; //设置查询命令 //获取查询结果代码,此处进行了一下简单的封装, //调用了dqlConnection工具类的方法,直接返回DataSet对象(已充填) DataSet ds = dqlConnection.getFilledDataSet(sqlstr,"ministerTable"); try { //开始循环遍历 foreach(DataRow row in ds.Tables[0].Rows){ ListViewItem first = new ListViewItem(row["id"].ToString()); first.SubItems.Add(row["name"].ToString()); first.SubItems.Add(row["sex"].ToString()); first.SubItems.Add(row["class"].ToString()); first.SubItems.Add(row["department"].ToString()); first.SubItems.Add(row["original_department"].ToString()); first.SubItems.Add(row["qq_number"].ToString()); first.SubItems.Add(row["telephone_number"].ToString()); first.SubItems.Add(row["position"].ToString()); first.SubItems.Add(row["organizational_activities"].ToString()); first.SubItems.Add(row["other"].ToString()); this.listView1.Items.Add(first); } Console.ReadLine();//防止一闪而过 } catch (Exception exc) { } finally { } } --------------------dqlConnection工具类 class dqlConnection { public static DataSet getFilledDataSet(string sqlstr,string tableName) { string constr = "server=localhost;User Id=root;password=root;Database=root"; //using语句执行完,自动释放占用的资源 using (MySqlConnection con = new MySqlConnection(constr)) { con.Open(); //创建适配器 MySqlDataAdapter msda = new MySqlDataAdapter(sqlstr,con); //创建数据集 DataSet ds = new DataSet(); //填充数据集 msda.Fill(ds,tableName); con.Close(); return ds; } } } ---------------minister和member表的建表语句 //1.minister表 drop table if exists minister ; /*==============================================================*/ /* Table: minister */ /*==============================================================*/ create table minister ( id int not null auto_increment, name varchar(1024) not null, sex varchar(1024) not null, class varchar(1024) not null, department varchar(1024) not null, original_department varchar(1024) not null, qq_number varchar(1024) not null, telephone_number varchar(1024) not null, position varchar(1024) not null, organizational_activities varchar(2000), other varchar(1024), status int not null, primary key (id) ); //2.member表 drop table if exists member; /*==============================================================*/ /* Table: member */ /*==============================================================*/ create table member ( id int not null auto_increment, name varchar(1024) not null, sex varchar(1024) not null, class varchar(1024) not null, department varchar(1024) not null, qq_number varchar(1024) not null, telephone_number varchar(1024) not null, position varchar(1024) not null, other varchar(1024), status int not null, primary key (id) );
有不明白的伙伴,还可以加群一起讨论学习,QQ群:627968097,这个群只为.NET学习之用,没错,群主就是我(坏笑)。
相关文章推荐
- 两种方式读取数据库显示。
- asp.net中读取数据库的两种方式
- asp.net中读取数据库的两种方式
- 数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码
- asp.net读取数据库的两种方式
- asp.net中读取数据库的两种方式
- asp.net中读取数据库的两种方式
- asp.net中读取数据库的两种方式
- asp.net读取数据库的两种方式
- 数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码
- asp.net中读取数据库的两种方式
- 数据库插入记录的两种方式
- SQL Server 2008 数据库同步的两种方式 (发布、订阅)
- ASP.Net将图片以二进制方式存入数据库,并读取
- listview更改选中时item背景色的两种方式
- java读取XML文件的两种方式
- SQL Server 2008 数据库同步的两种方式 (发布、订阅)
- notifyDataSetChanged() 动态更新ListView 通过 Handler AsyncTask两种方式
- 测试两种oracle数据库导出方式的时间效率
- 两种方式连接数据库