KTV项目之3个ListView的跳转和加载歌手图片
第一个ListView:

第二个ListView:

第三个ListView:

定义一个KTVUtil类,在里面定义一个静态变量保存歌手图片
//定义一个静态变量保存歌手图片路径
public static string imagePath = "";
在主窗体load事件拿歌手图片的前半部分路径:
//连接字符串
String str = "Data Source=.;Initial Catalog=MyKTV;uid=sa;";
//创建连接对象
SqlConnection con = new SqlConnection(str);
con.Open();
//准备sql语句
string sql = "select resource_path from resource_path where resource_id=1";
//创建命令对象
SqlCommand cmd = new SqlCommand(sql, con);
KTVUtil.imagePath = cmd.ExecuteScalar().ToString();
con.Close();
在第一个ListView_Click事件:
listView2.Items.Clear();
if (listView1.SelectedItems[] != null)
{
//隐藏歌手地区类的listView,显示歌手类的listView
listView1.Visible = false;
listView2.Location = listView1.Location;
listView2.Dock = DockStyle.Fill;
listView2.Visible = true;
this.singer_sex = Convert.ToString(listView1.SelectedItems[].Tag); }
//连接字符串
String str = "Data Source=.;Initial Catalog=MyKTV;uid=sa;";
//创建连接对象
SqlConnection con = new SqlConnection(str);
//准备sql语句
string sql = "select singertype_id,singertype_name from singer_type";
//创建命令对象
SqlCommand cmd = new SqlCommand(sql,con);
try
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
listView3.Items.Clear(); if(dr.HasRows){
int index = ;
while(dr.Read()){ //每Read一次拿到一个地区
//从数据库中读取一个歌手分类信息,就要创建一个ListViewItem
ListViewItem lvitem = new ListViewItem();
int typeId = Convert.ToInt32(dr["singertype_id"]);
string typename = Convert.ToString(dr["singertype_name"]);
lvitem.Text = typename;
lvitem.Tag = typeId;
lvitem.ImageIndex = index;
listView2.Items.Add(lvitem);
index++; }
}
}
catch
{
MessageBox.Show("系统维护中");
}
finally { }
在第二个ListView_Click事件:
listView1.Visible = false;
listView2.Visible = false;
listView3.Visible = true;
listView3.Dock = DockStyle.Fill;
listView3.Location = listView1.Location;
this.singertype_id = Convert.ToInt32(listView2.SelectedItems[].Tag); string str = "Data source = .; Initial catalog=MyKTV ;Uid = sa;";
SqlConnection con = new SqlConnection(str); string sql = "select singer_id , singer_name , singer_photo_url from singer_info where singer_sex='"+singer_sex+"' and singertype_id="+singertype_id+ "";
SqlCommand com = new SqlCommand(sql, con);
con.Open(); SqlDataReader dr = com.ExecuteReader(); listView3.Items.Clear();
int Imageindex = ; //歌手图像的索引
if (dr.HasRows) {
while (dr.Read())
{
ListViewItem item = new ListViewItem();
string fullpath = KTVUtil.imagePath + "\\" + Convert.ToString(dr["singer_photo_url"]);
imageList3.Images.Add(Image.FromFile(fullpath));
item.Text =Convert.ToString(dr["singer_name"]);
item.Tag = Convert.ToString(dr["singer_id"]);
item.ImageIndex = Imageindex;
listView3.Items.Add(item);
Imageindex++;
}
dr.Close();
}
con.Close();
KTV项目之3个ListView的跳转和加载歌手图片的更多相关文章
- Android项目实战(三十):Fresco加载gif图片并播放
前言: 项目中图文混合使用的太多太多了,但是绝大部分都是静态图片. 然而项目开发中有这么一个需求:显示一个出一个简短的动画(一般都不超过3秒)演示 比如说:一个功能提供很多步骤来教用户做广播体操,那么 ...
- KTV项目 SQL数据库的应用 结合C#应用窗体
五道口北大青鸟校区 KTV项目 指导老师:袁玉明 歌曲播放原理 SQL数据库关系图 C#解决方案类图 第一步:创建数据库连接方法和打开方法和关闭方法! public class DBHelper { ...
- KTV项目总结
KTV项目总结 大约一个星期前吧,老湿说我们要开始做KTV项目了,说是KTV项目是贯穿整个学的内容的,会所的,要我们认真去对待,一开始,第一天搭前台界面,总是有不会的,要去问问,这个要用什么控件啊,用 ...
- json解析,异步下载(listview仅滑动时加载)Demo总结
异步加载的练习demo 主要涉及知识点: 1.解析json格式数据,主要包括图片,文本 2.使用AsynTask异步方式从网络下载图片 3.BaseAdapter的"优雅"使用 4 ...
- Flutter 开发从 0 到 1(四)ListView 下拉加载和加载更多
在<APP 开发从 0 到 1(三)布局与 ListView>我们完成了 ListView,这篇文章将做 ListView 下拉加载和加载更多. ListView 下拉加载 Flutter ...
- Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)
Tomcat 利用server.xml进行项目映射的部署 2013-07-17 15:14 12843人阅读 评论(4) 收藏 举报 分类: web 开发(5) 版权声明:本文为博主原创文章,欢迎 ...
- 【记录】VS2012新建MVC3/MVC4项目时,报:此模板尝试加载组件程序集“NuGet.VisualStudio.Interop...”
最近电脑装了 VisualStudio "14" CTP,由于把其他版本的 VS 卸掉,由高到低版本安装,当时安装完 VisualStudio "14" CTP ...
- Android ListView 图片异步加载和图片内存缓存
开发Android应用经常需要处理图片的加载问题.因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载.为了增加用户体验,给用 ...
- listview中getview异步加载网络图片
前言:本以为异步加载挺简单,因为网上代码多,但真想要做好,还真不那么简单,从看代码到弄懂再到自己写,实在是有太多的东西需要学了,用了两天的时间,终于弄出来了,因为用到回调函数,所以理解起来可能难度有点 ...
随机推荐
- Linux/Unix/Mac OS下的远程访问和文件共享方式
scp -P 20022 src.tar.gz zhouhh@192.168.12.13:/home/zhouhhscp -P 20022 zhouhh@192.168.12.13:/home/zho ...
- String 类的实现(3)String类常用函数
2 #include<iostream> 3 #include<stdio.h> 4 #include<assert.h> 5 #include <iom ...
- k-近邻算法-优化约会网站的配对效果
KNN原理 1. 假设有一个带有标签的样本数据集(训练样本集),其中包含每条数据与所属分类的对应关系. 2. 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较. a. 计算新 ...
- kickstart-G
感觉自己很蠢,large数据只能交一次,忘记这回事了 A题 O(n^2)解法,用vector<set> 缓存j后面的数据,减少一重循环 #include <string> #i ...
- python全栈开发day71-ajax
一.django中间件 1 中间件的用处(针对请求和响应做全局的操作时) 可以做登录验证 访问限制 2. 自定义中间件,五个方法和三个要点 三个要点: 1.执行时间和执行顺序 2.参数 3.返回值 1 ...
- Javascript 中调参数的脚本onclick="select(this)" this 怎么解释
解释1. this,指当前的onclick所在的节点本身. 比如: <div onclick='select(this)"></div> 则当点击div时,this就 ...
- Python学习(七) —— 装饰器、迭代器、生成器
一.装饰器(decorator) 1.装饰器的本质是闭包函数,作用:在不改变函数的调用方式的情况下,给函数的前后添加新的功能 #装饰器的固定结构 def warpper(func): #定义装饰器函数 ...
- LOJ#6433. 「PKUSC2018」最大前缀和 状压dp
原文链接https://www.cnblogs.com/zhouzhendong/p/LOJ6433.html 题解 枚举一个集合 S ,表示最大前缀和中包含的元素集为 S ,然后求出有多少个排列是这 ...
- 025 SSM简单搭建
参考了同事的文档,自己也写一篇文档. 同时,补充了一下,程序是如何运行的. 一:SSM框架 1.说明 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC ...
- poi设置打印页页脚和页数设置
之前在网上搜了很久,也没有搜到具体页脚页数的答案,最后还是在官方api文档上找到了答案: HSSFPrintSetup printSetup = (HSSFPrintSetup) sheet.getP ...