ListView两种读取数据库表的方式

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"].ToString());      
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;
            }
        }
    }



---------------ministermember表的建表语句
//1.ministerdrop 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.memberdrop 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学习之用,没错,群主就是我(坏笑)。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Delphi中,您可以使用数据库组件和ListView组件实现将数据库的数据读取并显示在ListView中的功能。以下是一个简单的示代码: ```delphi uses // 导入相关单元 procedure TForm1.Button1Click(Sender: TObject); var Query: TADOQuery; // 使用ADOQuery组件读取数据库数据 ListItem: TListItem; begin ListView1.Clear; // 清空ListView中的内容 Query := TADOQuery.Create(Self); try Query.ConnectionString := 'your_connection_string'; // 设置数据库连接字符串 Query.SQL.Text := 'SELECT * FROM your_table'; // 设置SQL查询语句 Query.Open; // 打开查询 while not Query.EOF do begin ListItem := ListView1.Items.Add; // 添加一个ListView项 // 将数据库中的数据读取ListView项的各个列中 ListItem.Caption := Query.FieldByName('column1').AsString; ListItem.SubItems.Add(Query.FieldByName('column2').AsString); // 添加更多列... Query.Next; // 移动到下一条记录 end; Query.Close; // 关闭查询 finally Query.Free; // 释放查询对象 end; end; ``` 在上述代码中,您需要将"your_connection_string"替换为您的数据库连接字符串,将"your_table"替换为您要读取数据的名。您还可以根据实际情况添加更多的列和相应的数据。 请注意,上述示例使用了ADOQuery组件来连接和查询数据库。您需要确保已导入ADODB单元,并设置好ADO连接字符串以连接到您的数据库。此外,还需要在Form1上放置一个ListView组件(名为ListView1),并在按钮的点击事件中执行上述代码。 希望这个示例能够帮助您开始在Delphi中将数据库数据显示在ListView中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值