在线音乐网站【04】Part two 功能实现

news/2024/5/9 11:29:08/文章来源:https://blog.csdn.net/weixin_30586085/article/details/95927077

  今天把剩余功能的具体实现补充总结,如果你想对整个小项目有清楚的了解,建议去看下前几篇博客。

  1.在线音乐网站(1)需求和功能结构

  2.在线音乐网站(2)数据库和开发环境

  3.在线音乐网站(3)Part one 功能实现

  项目源码:https://git.oschina.net/LanboEx/online-music.git

d.歌曲添加功能的实现

  管理员或是被管理员授权的用户可以将自己喜欢的歌曲添加到在线音乐网站的首页排行榜中。如图7.5所示。

 

图7.5 歌曲添加

   通过在ASP.NET页面定义标签中的错误属性,如下代码:

Display="Dynamic" ErrorMessage="RequiredFieldValidator">歌手信息不为空

   歌手信息不为空 在点击添加后,程序将检查各个文本框的内容是否符合要求,并显示相应提示。

   在各信息无误的情况下,程序将会把信息通过SQL语言插入到各数据表中,关键代码如下:

 1 try
 2         {
 3             upload.SaveAs(path + musicname);
 4             conn.Open();
 5             SqlTransaction myTrans = conn.BeginTransaction();
 6             try
 7             {
 8                 SqlCommand cmd = new SqlCommand();
 9                 cmd.Transaction = myTrans;
10                 insert_music(conn, musicname, cmd);
11                 if (!isExisted("album", "album", conn, cmd))
12                 {
13                     insert_album(conn, cmd);
14                 }
15                 if (!isExisted("singer", "singer", conn, cmd))
16                 {
17                     insert_singer(conn, cmd);
18                 }
19                 myTrans.Commit();
20                 msg.Text = "音乐添加成功!";
21                 singer.Text = "";
22                 birthday.Text = "";
23                 hobby.Text = "";
24                 album.Text = "";
25                 profile.Text = "";
26             }
27        }

e.歌单不同类型播放的实现     

   用户可以根据自己喜好来选择播放榜单歌曲的方式(随机播放、顺序播放、单曲重复),如下7.6图。

图7.6 歌单不同类型播放

   在前台页面中将DropDownList中的索引值与内容对应,如下代码:

<asp:DropDownList>
<asp:DropDownList ID="ddlPlayType" runat="server">
<asp:ListItem Value="0">顺序播放</asp:ListItem>
<asp:ListItem Value="1">随机播放</asp:ListItem>
<asp:ListItem Value="2">单曲循环</asp:ListItem>
</asp:DropDownList>

   当用户播放下一首歌曲时,程序会通过比较DropDownList当前索引值,来决定传入播放器的音乐文件的ID。关键代码如下:

//顺序播放if (ddlPlayType.SelectedValue == "0"){int listCount = Select1.Items.Count;//这是最后一首的时候if ((selectIx + 1) == listCount){//将最后一首 设置为不可选状态Select1.Items[selectIx].Selected = false;//选择第一首歌曲Select1.Items[0].Selected = true;//ID 为第一首歌的IDid = Select1.Items[0].Value;}else{//取下一首歌曲IDid = Select1.Items[Select1.SelectedIndex + 1].Value;Select1.Items[selectIx].Selected = false;Select1.Items[selectIx + 1].Selected = true;}}//随机播放else if (ddlPlayType.SelectedValue == "1"){//取随机数Random rad = new Random();//在歌曲数目中取个随机数int radIx = rad.Next(0, Select1.Items.Count);//选择那首选中的随机歌曲的IDid = Select1.Items[radIx].Value;Select1.Items[selectIx].Selected = false;Select1.Items[radIx].Selected = true;}//单曲循环else{id = Select1.Items[selectIx].Value;}

f.管理员维护歌曲   

   管理员登录到后台后,可以进行音乐、专辑、歌手信息的修改,如下7.7、7.8图。

 

图7.7 音乐信息修改  

图7.8 音乐详细信息修改  

   通过添加按钮btn_Click事件使用更新和删除的SQL语言,将页面发生变更的信息同步到数据库当中去,关键代码如下:

cmd.CommandText = "update [music] set musicName=@musicName,singer=@singer,album=@album,type=@type where id=@id";
cmd.Parameters.Add("@musicName", SqlDbType.NChar).Value = musicName.Text.Trim().ToString();
cmd.Parameters.Add("@singer", SqlDbType.NChar).Value = singer.SelectedValue.Trim().ToString();
cmd.Parameters.Add("@album", SqlDbType.NChar).Value = album.SelectedValue.Trim().ToString();
cmd.Parameters.Add("@type", SqlDbType.NChar).Value = typelist.SelectedValue.Trim().ToString();

 

g.用户授权和注册

   管理员可以授权用户成为管理员来进行网站曲目的维护,如图7.9。游客可以通过注册来成为在线音乐的用户,如图7.10。

 

图7.9 管理员授权页面 

图7.10用户注册

1)授权实现过程:   

   当管理员登录后台,点击授权按钮,触发dg_ItemCommand事件,网站根据授权的用户ID,执行SQL 更新语句,关键代码如下:

if (e.CommandName == "allowUser"){msg.Text = "";SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());string userId = dg.DataKeys[e.Item.ItemIndex].ToString();conn.Open();try{SqlCommand cmd = new SqlCommand();cmd.CommandText = "update [user] set type ='admin' where userId=@userId";cmd.Connection = conn;cmd.Parameters.Add("@userId", SqlDbType.NChar).Value = userId.Trim();cmd.ExecuteNonQuery();dataBind();}

2)注册实现过程:

   用户在输入注册页面的信息的同时,能判断用户名和e_mail的格式是否正确;

   在点击添加按钮后,触发 addbtn_Click事件,并将信息插入到用户信息数据表中,关键代码如下:

try{conn.Open();SqlCommand cmd = new SqlCommand();cmd.Connection = conn;cmd.Parameters.Add("@userId", SqlDbType.NChar).Value = userId.Text.Trim();cmd.Parameters.Add("@passwd", SqlDbType.NChar).Value = password.Text.Trim();cmd.Parameters.Add("@name", SqlDbType.NChar).Value = name.Text.Trim();cmd.Parameters.Add("@sex", SqlDbType.NChar).Value = sex.SelectedValue.ToString();cmd.Parameters.Add("@mail", SqlDbType.NChar).Value = mail.Text.Trim();cmd.Parameters.Add("@type", SqlDbType.NChar).Value = "user";if (!isExisted(cmd)){
cmd.CommandText = "INSERT INTO [user] VALUES (@userId,@passwd,@name,@sex,@mail,@type)";cmd.ExecuteNonQuery();msg.Text = "注册成功!";userId.Text = "";name.Text = "";mail.Text = "";Response.Redirect("Default.aspx");}elsemsg.Text = "用户名已经存在!"; 

 

转载于:https://www.cnblogs.com/java-class/p/4078108.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_730126.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js外链跳转_贴吧外链,百度贴吧推广对SEO有用吗?

对于SEO而言&#xff0c;我们的兴趣爱好更多的是大于工作&#xff0c;因此&#xff0c;在很长一段时间里&#xff0c;我会花费大量的时间去测试与研究&#xff0c;相关的优化策略是否具有实际的操作价值。特别是在外链增长这一块&#xff0c;虽然&#xff0c;搜索引擎一在试图调…

centos删除mysql服务器上,centos如何删除mysql_网站服务器运行维护,centos

docker如何运行项目_网站服务器运行维护docker运行项目的方法是&#xff1a;1、进入存放自己项目war的目录&#xff1b;2、build镜像&#xff1b;3、运行docker容器&#xff1b;4、执行命令【192.168.1.178:8888/myproject】访问项目即可。彻底卸载mysql&#xff1a;卸载mysql安…

php fpm独立用户,PHP网站简单架构 – 单独跑php-fpm

这个架构比较简单,不做过多的说明前端1台Nginx&#xff1a;负载均衡nfs中间2台php&#xff1a;php-fpm后端1台数据库&#xff1a;MySQL安装略&#xff0c;参考《lnmp最新源码一键安装包》192.168.112安装Tengine192.168.1.113/192.168.1.115安装php192.168.1.114安装MySQLnfs配…

tocat服务器怎么登陆网站,如何登陆Tomcat的控制台(Web管理界面)

当我们成功安装启动Tomcat服务后&#xff0c;在浏览器输入http://localhost:8080(8080是Tomcat的默认端口&#xff0c;可自行修改)回车&#xff0c;可看到如下界面右上角可以看到三个控制台&#xff1a;Server Status、Manager App、Host ManagerServer Status&#xff1a;用于…

全球银行网站成黑客主攻目标 阿里云提供安全防御应急方案

近日&#xff0c;阿里云监控发现&#xff0c;匿名者&#xff08;Anonymous&#xff09;组织成员正在发起针对全球中央银行网站的攻击行动&#xff0c;截止目前&#xff0c;国内有超过2家以上的重要网站被攻击&#xff0c;攻击特征主要为DDoS攻击和CC攻击。 此次事件中&#xff…

云服务器的维护方法,网站服务器的维护方法

网站服务器的维护方法 内容精选换一换云解析服务提供不同网络场景中的解析服务。云解析服务在不同的使用场景下&#xff0c;可以选择多种类型的解析方式&#xff0c;请参见表1。如果用户已注册华为云&#xff0c;可直接登录管理控制台&#xff0c;访问云解析服务。如果用户没有…

移动端Viewport 使用rem来开发移动端网站

移动端Viewport & 使用rem来开发移动端网站 Viewport大神 无双 的精彩解释 具体参数各型号是否支持参见: http://www.cnblogs.com/2050/p/3877280.html#commentform 摘录: 移动设备上的viewport: 设备的屏幕上能用来显示我们的网页的那一块区域 设备像素比: docment.device…

python爬取两个网站_python网络爬虫之使用scrapy自动爬取多个网页

前面介绍的scrapy爬虫只能爬取单个网页。如果我们想爬取多个网页。比如网上的小说该如何如何操作呢。比如下面的这样的结构。是小说的第一篇。可以点击返回目录还是下一页对应的网页代码&#xff1a;我们再看进入后面章节的网页&#xff0c;可以看到增加了上一页对应的网页代码…

网站导航颜色停留_如何提升网站用户体验度

所谓的用户体验就是用户进入你网站之后的感受&#xff0c;具体的表现为用户在你网站停留的时间越短&#xff0c;打开的页面数量越少&#xff0c;就说明你的网站不太受用户所喜欢。相反用户进入你网站之后停留的时间越长就说明你的网站粘度比较好&#xff0c;能够为用户带来一些…

seo外链网站大全_这些站内、站外SEO优化细节你注意了吗?

这篇文章分享一下最基础的东西&#xff0c;也是最值得注意的细节&#xff0c;只要你做好这些细节&#xff0c;相信你就能做好SEO优化。第一、站内优化需要注意的几个地方1、URL&#xff1a;标准化&#xff0c;唯一化&#xff0c;静态化2、导航&#xff1a;主导航&#xff0c;面…

【自然语言处理入门系列】推荐:paperwithcode,一个适合关注人工智能最新进展的网站

【自然语言处理入门系列】推荐&#xff1a;paperwithcode&#xff0c;一个适合关注人工智能最新进展的网站paperswithcode使用示例Browse State-of-the-Artpaperswithcode 今天要给大家推荐的网站是paperswithcode&#xff0c;也就是https://paperswithcode.com/&#xff0c;一…

网站留言板防重复留言_成都玩具网站建设栏目规划设计分享!

伴随着互联网的不断发展,整个世界都被数据连接起来了,让大家足不出门就可以购买到全世界任何地方的商品&#xff0c;玩具行业也不能避开这一事实。下面笔者就成都玩具网站建设基本思路与大伙儿分亨一下。成都玩具网站建设成都玩具网站建设导航栏目架构设计1、市场销售玩具的客户…

如何移除网站Response Headers中的X-Powered-By信息?

X-Powered-By是网站响应头信息其中的一个&#xff0c;出于安全的考虑&#xff0c;一般会修改或删除掉这个信息。 如果你用的node.js express框架&#xff0c;那么X-Powered-By就会显示Express。如果用的thinkjs&#xff0c;那么X-Powered-By就会显示thinkjs.1... 最近&#xff…

php搭建文章类网站教程,PHPstudy搭建wordpress本地网站教程 | 自媒体培训教程-君墨...

我们在正式搭建网站之前往往会搭建一个本地网站。 这个网站只能在我们自己电脑上打开&#xff0c;就像我们玩电脑游戏中的单机游戏。 这个网站不能联网&#xff0c;你能看&#xff0c;别人不能看。这样做的好处是&#xff0c;我们可以在这里优化网站布局。你想要什么样的功能&…

服务器稳定对页面的排名很重要,网站关键词排名的影响因素

影响网站关键词排名的因素有哪些&#xff1f;在SEO优化中&#xff0c;优化师非常关心网站关键词在百度主页上的排名。就让我们一起来了解一下影响网站关键词排名的因素吧&#xff01;1、网站服务器稳定性网站服务器的稳定性和速度直接影响到网站关键词排名。如果蜘蛛抓取你的网…

linux shell基础测试题与答案,Linux Shell - Linux操作系统基础进阶练习题_Linux教程_Linux公社-Linux系统门户网站...

Linux操作系统基础进阶练习题Linux Shell[日期&#xff1a;2009-06-01]来源&#xff1a;Linux社区作者&#xff1a;Linux编辑[字体&#xff1a;大 中 小]linux shell1).更改Shell1.1).利用PS1变量改变命令提示&#xff0c;新提示符包括使用者帐号名称(u)&#xff0c;主机名(h)&…

一元建站-基于函数计算 + wordpress 构建 serverless 网站

前言 本文旨在通过 快速部署一个 wordpress 网站到阿里云函数计算平台 这个示例来展示 serverless web 新的开发模式, 包括 FUN 工具一键初始化 NAS, 同步网站到 NAS, 一键部署等能力&#xff0c; 展现函数计算的开发敏捷特性、自动弹性伸缩能力、免运维和完善的监控设施。 相…

(转)网站速度优化技巧:Nginx设置js、css过期时间

网站速度优化技巧&#xff1a;Nginx设置js、css过期时间 原文&#xff1a;http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for-js-and-css.html 配置Nginx expires缓存实现性能优化 原文&#xff1a;https://blog.webfsd.com/post_pei-zhinginx-expires-…

保护网站访问安全--阿里云DNS正式支持DNSSEC

近日&#xff0c;云解析DNS正式发布DNSSEC(Domain Name System Security Extensions)功能。DNSSEC功能的发布&#xff0c;意味着云解析DNS在保护网站访问安全的方面&#xff0c;又前进了一大步。那到底什么是DNSSEC&#xff0c;这项技术的给我们带来了什么好处呢。接下来我们一…

Yslow安装使用, 网站性能工具Yslow

本文whyboy站长讲解 Yslow安装 以及 Yslow使用 ,打开Yslow官网就能看到有四个版本可供选择&#xff1a;火狐&#xff08;firefox&#xff09;浏览器、谷歌&#xff08;chrome&#xff09;浏览器、欧朋&#xff08;opera&#xff09;浏览器和移动版。本文介绍的火狐版本文whyboy…