C# 使用数据库对ListView控件数据绑定实现(查询搜索和右击新建文件操作)

这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

前言

之前的文章博主写了一篇关于ListView控件的简单处理,数据处理局限性很大,对于这个控件我们大都数都是连接数据库进行使用,我们的数据大多数都是动态的,所以我们如果只是简单的添加数据是有局限性的,所以今天这篇文章博主使用数据库对ListView这个控件进行数据绑定,算是对我们上一篇文章的扩展吧!!!嘿嘿,不会的童鞋可以评论或者私信问博主哦❤

每日一遍,防止颓废

image-20211116194511132

(我们要为自己坚持着,哪怕困难再大再多)

1.将我们上一篇文章的项目打开,把静态的数据删除。我们采用数据库处理不会的同学需要看上一篇文章

image-20211116204704882

2.使用数据库对ListView数据展示操作

2.1 双击窗体界面自动生成函数

image-20211116204827282

2.2. 创建我们需要的数据库并写入值

博主使用的是SQL server 没有这个数据库的同学可以用MySQL博主之前的文章有写

image-20211117161250009

2.3. 使用代码对ListView控件与数据库建立连接并绑定数据

image-20211117160711255

2.4. 使用数据库对LIstVIew控件进行数据绑定查询效果展示

image-20211117161647765

3.使用对话框对数据库创建搜索查询

image-20211117162155951

4.加一个窗体实现新建文件操作

4.1 使用conTextMenuStrip控件实现右击新建

image-20211117163004178

4.2 实现窗体和窗体之间的跳转

新建一个窗体文件,并拖好样式,在需要跳转的函数里面实例化一个窗体2,使用Show展示。

image-20211117163205800

4.3 对”新建文件“窗体代码处理

image-20211117163532209

5.整体代码展示,效果图

我的作品4 00_00_00-00_00_30

5.1窗体1核心代码:

     private void Form1_Load(object sender, EventArgs e)
        {
            string connString = "server=.;database=mychat; User ID = sa; Pwd=123456";//写好数据库打开语句,博主使用的是SQL     server数据库,如果你是MySQL 可以看博主之前的文章里面有讲解。
            SqlConnection conn = new SqlConnection(connString);//实列化
            conn.Open();//打开数据库
            string sql = "select name,type,size,date,Imageid from listview";//查询语句
            SqlCommand cmd = new SqlCommand(sql, conn);//建立连接
            SqlDataReader reader = cmd.ExecuteReader();
            listView1.Items.Clear();//清空listView
            while (reader.Read())//查询结果遍历,并进行数据绑定
            {
                ListViewItem item = new ListViewItem(reader[0].ToString().Trim());//Trim()清空空格
                item.ImageIndex = Convert.ToInt32(reader[4]);//绑定图标id
                item.SubItems.Add(reader[1].ToString().Trim());//数据绑定
                item.SubItems.Add(reader[2].ToString().Trim());
                item.SubItems.Add(reader[3].ToString().Trim());
                this.listView1.Items.Add(item);
            }
            reader.Close();
            conn.Close();
        }
        private void button4_Click(object sender, EventArgs e)
        {
            string connString = "server=.;database=mychat; User ID = sa; Pwd=123456";
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            string sql =string.Format("select name,type,size,date,Imageid from listview where name like '%{0}%';", textBox1.Text);//实现模糊查询
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            listView1.Items.Clear();
            while (reader.Read())//添加数据和上面代码一致
            {
                ListViewItem item = new ListViewItem(reader[0].ToString().Trim());
                item.ImageIndex =Convert.ToInt32(reader[4]);
                item.SubItems.Add(reader[1].ToString().Trim());
                item.SubItems.Add(reader[2].ToString().Trim());
                item.SubItems.Add(reader[3].ToString().Trim());
                this.listView1.Items.Add(item);
            }
            reader.Close();
            conn.Close();
        }

        private void 新建文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.Show();
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
复制代码

5.2 窗体二核心代码:

 private void button2_Click(object sender, EventArgs e)//重置按钮
        {
            textBox1.Clear();//对textbox清空
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();
        }
 private void button1_Click(object sender, EventArgs e)//添加按钮
        {
            string connString = "server=.;database=mychat; User ID = sa; Pwd=123456";
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();
            string sql = string.Format("INSERT INTO listview(name, type, size, date, Imageid) VALUES('{0}','{1}','{2}','{3}',{4});",textBox1.Text, textBox2.Text, textBox3.Text+"MB", textBox4.Text,Convert.ToInt32(textBox5.Text));//添加数据语句
            SqlCommand cmd = new SqlCommand(sql, conn);
            int x =cmd.ExecuteNonQuery();//添加操作,成功了返回你添加数据的条数,否则为0
            if (x > 0)
            {
                MessageBox.Show("添加成功");
                this.Close();//添加成功,关闭这个窗体
            }
            else
                MessageBox.Show("添加失败");
        }
    }
复制代码

总结

博主大致讲解了这个控件的操作,删除和添加差不多,我们可以在后面添加一个删除按钮,通过name进行删除,增加一个函数就可以了,博主觉得很简单就没有做更多的处理了,对于一个初学者,这篇文章还是能看懂的连接数据库可能对于初学者不友好,但是只要你认真学,跟着博主的逻辑走,还是可以理解的,博主这篇文章是基于上一篇文章基础之上的扩展篇。好了,创作不易,点赞关注评论收藏!!!!

12354689

Guess you like

Origin juejin.im/post/7031470220661227534