使用 ASP.NET 制作一个音乐网站

我怕爱的太早我们不能终老 提交于 2020-02-03 03:19:32


一、效果预览

音乐网站视频效果预览

二、源码下载

源码已经上传到了我的GitHub,感兴趣的朋友请点击下方连接到达页面clone下载,感觉还行的话求star

点我前往连接

三、预备知识

在这里插入图片描述

四、文件结构

在这里插入图片描述

五、数据库设计

下面是数据库的三张表:

use db_music
go
create table tb_musicInfo(
	id int primary key,
	musicType int,
	speciaName varchar(500),
	musicName varchar(500),
	lyricPath varchar(500),
	singerName varchar(500),
	auditionSum int,
	downSum int,
	fileSize char(10),
	imgs varchar(500),
	country varchar(500),
	addtime datetime,
	zhuanji varchar(500),
	zjimg varchar(500),
	style varchar(200),
)
create table User(
	userName nvarchar(50),
	pwd nvarchar(50),
)
create table UserLove(
	musicId int,
	userName nvarchar(50)
)

六、部分代码展示

1、数据库增删改查

dataOperate.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// dataOperate 的摘要说明
/// </summary>
public class dataOperate
{
    public dataOperate()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    /// <summary>
    /// 创建数据库连接
    /// </summary>
    /// <returns>返回SqlConnection对象</returns>
    public static SqlConnection createCon()
    {
        //创建SqlConnection对象
        SqlConnection con = new SqlConnection("server=DESKTOP-9FCSCD4;database=db_music;Trusted_Connection=SSPI;");
        return con;
    }
    /// <summary>
    /// 执行对数据库的添加、删除和插入操作
    /// </summary>
    /// <param name="sql">需要执行的SQL语句</param>
    /// <returns>返回一个布尔值,当执行成功返回True否则返回False</returns>
    public static bool execSql(string sql)
    {
        //创建数据库连接
        SqlConnection con = createCon();
        //打开数据库连接
        con.Open();
        //创建SqlCommand对象
        SqlCommand com = new SqlCommand(sql, con);
        //获取ExecuteNonQuery方法返回的值
        int i = com.ExecuteNonQuery();
        //关闭数据库连接
        con.Close();
        //判断返回的值是否大于1,大于1表示执行成功
        if (i > 0)
        {
            return true;
        }
        else
            return false;
    }
    /// <summary>
    /// 返回查询的指定列
    /// </summary>
    /// <param name="sql">需要查询的SQL语句</param>
    /// <returns>返回查询的列</returns>
    public static string getTier(string sql)
    {
        //创建数据库连接
        SqlConnection con = createCon();
        //打开数据库连接
        con.Open();
        //创建SqlCommand对象
        SqlCommand com = new SqlCommand(sql, con);
        //获取ExecuteReader方法返回的对象
        SqlDataReader sdr = com.ExecuteReader();
        //读取一条记录
        sdr.Read();
        //获取查询的指定列值
        string str = sdr[0].ToString();
        con.Close();
        sdr.Close();
        return str;

    }
    /// <summary>
    /// 查询数据并返回SqlDataReader对象
    /// </summary>
    /// <param name="sql">需要查询的SQL语句</param>
    /// <returns>返回SqlDataReader对象</returns>
    public static SqlDataReader getRow(string sql)
    {
        //创建数据库连接对象
        SqlConnection con = createCon();
        //打开数据库连接
        con.Open();
        //创建SqlCommdand对象
        SqlCommand com = new SqlCommand(sql, con);
        //获取ExecuteReader方法返回的SqlDataReader对象
        SqlDataReader sdr = com.ExecuteReader();
        return sdr;
    }

    /// <summary>
    /// 查询数据并返回DataSet对象
    /// </summary>
    /// <param name="sql">需要执行的SQL语句</param>
    /// <returns>返回DataSet对象</returns>
    public static DataSet getRows(string sql)
    {
        //创建数据库连接
        SqlConnection con = createCon();
        //打开数据库连接
        con.Open();
        //创建SqlDataAdapter对象
        SqlDataAdapter sda = new SqlDataAdapter(sql, con);
        //创建DataSet对象
        DataSet ds = new DataSet();
        //填充DataSet对象
        sda.Fill(ds);
        con.Close();
        return ds;
    }
}

2、JSON数据解析

f.cs

    public static string ToJson(this DataTable dt)
    {
        JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();

        javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
        ArrayList arrayList = new ArrayList();
        foreach (DataRow dataRow in dt.Rows)
        {
            Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合
            foreach (DataColumn dataColumn in dt.Columns)
            {
                dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
            }
            arrayList.Add(dictionary); //ArrayList集合中添加键值
        }

        return "{root:" + javaScriptSerializer.Serialize(arrayList) + "}";  //返回一个json字符串
    }

3、ashx的使用

这个比较长,就不展示了,代码在tools\Handler.ashx


最后:感谢明日科技 出版的 《ASP.NET项目实战开发入门》

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!