MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行

C#开发工具:Visual Studio 2012
数据库:Sql Server
Windows版本:Win10
分辨率:1366*768
文章的最后有KTV点歌系统的前后台源码下载链接。

在正式写代码之前先看一下运行效果图,如果觉得这个是你需要的,那么请接着往下看,如果不是,可以换家~(窗体没有美化,但是基本上的功能都已经实现了)
在这里插入图片描述
歌星点歌(其他的都一样,知识数据库语句不一样,改改就可以了):
在这里插入图片描述
在这里插入图片描述
下面的那些按钮都已经实现了。接下来看功能,首先是DBHelper类:

public class DBHelper{//数据库连接字符串public string conStr = @"Data Source=.;Initial Catalog=MyKTV;Integrated Security=True";//连接数据库public SqlConnection conn;public SqlConnection GetConn() {if(conn==null){conn = new SqlConnection(conStr);}return conn;}//打开连接public void OpenConn() {if(conn.State==ConnectionState.Broken){//先关闭在打开conn.Close();conn.Open();}else if(conn.State==ConnectionState.Closed){conn.Open();}}//关闭连接public void CloseConn() {if(conn.State==ConnectionState.Open||conn.State==ConnectionState.Broken){conn.Close();}}}

接下来需要一个Song的歌曲类

public class Song{private int song_id;            //歌曲编号 private string song_name;       //歌曲名称private string song_ab;         //歌曲拼音private int song_word_count;    //字数 private int songtype_id;        //类型编号private int singer_id;          //歌星编号private string song_url;        //歌曲地址.mp3private int song_play_count;    //点击量private string song_ban;        //伴唱private string singer_name;     //歌手名称private string song_typename;  //歌曲类别名称public string Singer_name{get { return singer_name; }set { singer_name = value; }}public string Song_typename{get { return song_typename; }set { song_typename = value; }}public int Song_id{get { return song_id; }set { song_id = value; }}public string Song_name{get { return song_name; }set { song_name = value; }}public string Song_ab{get { return song_ab; }set { song_ab = value; }}public int Song_word_count{get { return song_word_count; }set { song_word_count = value; }}public int Songtype_id{get { return songtype_id; }set { songtype_id = value; }}public int Singer_id{get { return singer_id; }set { singer_id = value; }}public string Song_url{get { return song_url; }set { song_url = value; }}public int Song_play_count{get { return song_play_count; }set { song_play_count = value; }}public string Song_ban{get { return song_ban; }set { song_ban = value; }}private int id;            //编号 private string musicNameY;//原唱private string musicName;//歌曲名称private string musicNameB;//伴唱private string musicPic;    //图片public int Id{get { return id; }set { id = value; }}public string MusicName{get { return musicName; }set { musicName = value; }}public string MusicNameY{get { return musicNameY; }set { musicNameY = value; }}public string MusicNameB{get { return musicNameB; }set { musicNameB = value; }}public string MusicPic{get { return musicPic; }set { musicPic = value; }}}

接着,看看窗体是怎么布局的:
在这里插入图片描述
需要注意的是下面几个点:
1.暂停按钮的tag属性值是:zanting
2.静音按钮的tag属性值是:mute
3.伴唱按钮的tag属性值是:banchang
4.默认播放的MV是“2002年的第一场雪”
5.所有已点歌曲列表后面的“删”和“顶”的按钮绑定的事件是一样的。
6.所有的“未添加歌曲”的label绑定的事件是一样的。
下面就是代码的实现:

一、窗体的全局变量:

 public string tag = "";     //区分是什么点歌DBHelper db = new DBHelper();//保存查询出来的歌曲public List<Song> selectMusic = new List<Song>();private int pagesize = 5;//一个panel里面有6个label显示数据private int pagenow = 1;//当前为第一页(歌曲列表)private int pagenow_yidian = 1;//已点歌曲列表//这里是放置歌曲的路径,因为采用绝对路径,//vs不识别,所以要加符号“@”,个人可尝试删除该符号看结果private const string MUSICURL = @"D:\青鸟\信工校区\18级1班\KTV项目\music\";//保存已点的歌曲public List<Song> chooseMusic = new List<Song>();

二、窗体加载事件:

 private void FrmSongListInfo_Load_1(object sender, EventArgs e){FindSongBySinger(FrmSingerDianGe.sex);//隐藏掉panal3this.panel3.Hide();//播放一首mv2002年的第一场雪.mp4//播放地址this.axWindowsMediaPlayer1.URL = MUSICURL + "2002年的第一场雪.mp4";//伴奏this.axWindowsMediaPlayer2.URL = MUSICURL + "伴2002年的第一场雪.mp3";//播放列表状态this.axWindowsMediaPlayer1.uiMode = "Full";//第二个的音量是0this.axWindowsMediaPlayer2.settings.volume = 0;this.axWindowsMediaPlayer1.Tag = "now";//系统自动加载默认歌曲正在播放时,tag设置为now,(见102和133切歌操作使用)//不记录容易出现一个问题,默认歌曲播放时,当我们点击切歌时,第1首歌曲被切割掉,而系统仍能自动播放被切掉的歌曲。}

三、根据歌星查询歌曲信息的方法

 public void FindSongBySinger(string sex){string sql = string.Format("select song_id,song_name,song_ab,song_word_count,songtype_name,singer_name,song_url,song_play_count from song_info g,singer_info s ,song_type t where g.singer_id = s.singer_id and g.songtype_id = t.songtype_id and singer_gender = '{0}' order by song_id asc", sex);SqlCommand cmd = new SqlCommand(sql, db.GetConn());db.OpenConn();SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){Song song = new Song();song.Song_id = Convert.ToInt32(dr[0]);song.Song_name = dr[1].ToString();song.Song_ab = dr[2].ToString();song.Song_word_count = Convert.ToInt32(dr[3]);song.Song_typename = dr[4].ToString();song.Singer_name = dr[5].ToString();song.Song_url = dr[6].ToString();song.Song_play_count = Convert.ToInt32(dr[7]);selectMusic.Add(song);}dr.Close();db.CloseConn();//遍历集合,获得集合中所有的元素  i<7for (int i = 0; i < pagesize; i++){//得到歌曲的名称string name = selectMusic[i].Song_name;//得到歌手名称string singer_name = selectMusic[i].Singer_name;//编译panel集合中的所有控件,并用控件类型进行接收(Control)Control c = this.panel2.Controls[i];//将控件类型还原成LabelLabel la = (Label)c;//给label的Text属性进行赋值la.Text = name + "---" + singer_name;}}

四、歌曲列表的上一页:

private void button6_Click(object sender, EventArgs e){//实现分页功能if (pagenow > 1){pagenow -= 1;//点击下一页的时候页数-1//遍历控件将里面所有显示的数据清空,方便继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel2.Controls[i];la.Text = "";}try{//遍历控件,继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel2.Controls[i];//如果再使用下标的话,下标还是从0开始,我们需要继续添加数据//7(6) 6    1la.Text = selectMusic[(pagenow - 1) * pagesize + i].Song_name + "---" + selectMusic[(pagenow - 1) * pagesize + i].Singer_name;}}catch (Exception ex){this.button2.Enabled = false;this.button1.Enabled = true;}}}

五、歌曲列表的下一页:

private void button7_Click(object sender, EventArgs e){//根据性别查询的歌曲数量int count = FindSongCountBySex(FrmSingerDianGe.sex);//根据数量计算页数int page_count = 0;if (count % pagesize != 0){page_count = count / pagesize + 1;}else {page_count = count / pagesize;}// MessageBox.Show(page_count.ToString());if (pagenow <= page_count-1){//实现分页功能pagenow += 1;//点击下一页的时候页数+1//遍历控件将里面所有显示的数据清空,方便继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel2.Controls[i];la.Text = "";}try{//遍历控件,继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel2.Controls[i];//如果再使用下标的话,下标还是从0开始,我们需要继续添加数据//  MessageBox.Show(selectMusic[(pagenow - 1) * pagesize + i].Song_name);//7(6) 6    1la.Text = selectMusic[(pagenow - 1) * pagesize + i].Song_name + "---" + selectMusic[(pagenow - 1) * pagesize + i].Singer_name;}}catch (Exception ex){this.button2.Enabled = false;this.button1.Enabled = true;}}else {MessageBox.Show("已经是最后一页了");}}

六、根据歌星的性别查询歌曲的总记录数:

 public int FindSongCountBySex(string sex) {string sql = string.Format("select count(*) from song_info g,singer_info s ,song_type t where g.singer_id = s.singer_id and g.songtype_id = t.songtype_id and singer_gender = '{0}'", sex);SqlCommand cmd = new SqlCommand(sql, db.GetConn());db.OpenConn();int rel =(int)cmd.ExecuteScalar();db.CloseConn();return rel;}//歌曲的点击事件private void label6_Click(object sender, EventArgs e){Label la = (Label)sender;//截取前面的歌曲名称string song_name = la.Text;int index = song_name.IndexOf("-");string sname = song_name.Substring(0,index);//MessageBox.Show(sname);//点击的时候添加到集合中Song song = new Song();song.Song_name = sname;chooseMusic.Add(song);//更新已点歌曲列表//遍历choosie集合里面的所有数据BianLiMusicList();}

七、播放的方法:

 private void BrodCast(){this.timer1.Enabled = true;//点歌之后在歌曲列表中选择第一个列表中的歌曲进行播放this.axWindowsMediaPlayer1.URL = MUSICURL + this.label7.Text.ToString() + ".mp3";//伴唱this.axWindowsMediaPlayer2.URL = MUSICURL + "伴"+this.label7.Text.ToString() + ".mp3";// MessageBox.Show(this.label2.Text);//播放this.axWindowsMediaPlayer1.Ctlcontrols.play();this.axWindowsMediaPlayer2.Ctlcontrols.play();this.axWindowsMediaPlayer1.Tag = this.label7.Text;//记录当前正在播放歌曲的名称}

八、已点歌曲的按钮:

private void button28_Click(object sender, EventArgs e){if(this.button28.Tag.Equals("hide")){//当前是显示的状态this.panel3.Hide();this.button28.Tag = "show";}else if (this.button28.Tag.Equals("show")){//当前是隐藏的状态this.panel3.Show();this.button28.Tag = "hide";this.panel3.BringToFront();}//遍历choosie集合里面的所有数据BianLiMusicList();}

九、遍历播放的歌曲列表

 public void BianLiMusicList(){if (chooseMusic.Count <= 5){//遍历歌曲列表for (int i = 0; i < chooseMusic.Count; i++){Label la = (Label)this.panel1.Controls[i];la.Text = chooseMusic[i].Song_name;}}else {//遍历歌曲列表for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel1.Controls[i];la.Text = chooseMusic[i].Song_name;}}}

十、暂停

 private void button2_Click(object sender, EventArgs e){//首先必须将pictureBox2的tag属性设置为zanting,否则会出现空异常if (this.button2.Tag.Equals("zanting")){//播放this.axWindowsMediaPlayer1.Ctlcontrols.pause();//播放this.axWindowsMediaPlayer2.Ctlcontrols.pause();this.button2.Tag = "bofang";}else{this.axWindowsMediaPlayer1.Ctlcontrols.play();this.axWindowsMediaPlayer2.Ctlcontrols.play();this.button2.Tag = "zanting";}}

十一、静音:

 private void button3_Click(object sender, EventArgs e){if (this.button3.Tag.Equals("mute")){//静音this.axWindowsMediaPlayer1.settings.mute = true;this.axWindowsMediaPlayer2.settings.mute = true;this.button3.Tag = "huifu";}else{//不静音this.axWindowsMediaPlayer1.settings.mute = false;this.axWindowsMediaPlayer2.settings.mute = false;this.button3.Tag = "mute";}}

十二、加音:

private void button17_Click(object sender, EventArgs e){this.axWindowsMediaPlayer1.settings.volume += 30;}

十三、减音:

  //减音private void button18_Click(object sender, EventArgs e){this.axWindowsMediaPlayer1.settings.volume -= 30;}

十四、伴唱:

 private void button4_Click(object sender, EventArgs e){if (this.button4.Tag.Equals("banchang")){//正常播放的静音this.axWindowsMediaPlayer1.settings.mute = true;//音量this.axWindowsMediaPlayer2.settings.volume = 100;this.button4.Tag = "huifu";}else{this.axWindowsMediaPlayer1.settings.mute = false;//音量this.axWindowsMediaPlayer2.settings.volume = 0;this.button4.Tag = "banchang";}}

十五、重唱:

        private void button16_Click(object sender, EventArgs e){this.axWindowsMediaPlayer1.Ctlcontrols.stop();this.axWindowsMediaPlayer2.Ctlcontrols.stop();this.axWindowsMediaPlayer1.Ctlcontrols.play();this.axWindowsMediaPlayer2.Ctlcontrols.play();}

十六、切歌:

private void button5_Click(object sender, EventArgs e){if (chooseMusic.Count <= 1){//最后一首歌时,切歌功能失效,提示请选择新歌曲MessageBox.Show("这是最后一首,请继续选歌");return;}if (!this.axWindowsMediaPlayer1.Tag.ToString().Equals("now")){/** chooseMusic集合内有所有已选歌曲。)* panel2控件中的label控件,显示chooseMusic集合。* 切歌操作:把最上面的第一首歌删除掉,第二首歌成为第一首歌,因此*1: 清空panel2控件中的label控件的text*2:删除chooseMusic集合第一个元素*3:再次填充panel2控件中的label控件text*/chooseMusic.RemoveAt(0);//把集合中的第一个删除掉//遍历歌曲列表BianLiMusicList();//刷新已选歌曲列表FlushList();}BrodCast();}

十七、刷新已选歌曲列表:

  private void FlushList(){int labelNumber = this.panel1.Controls.Count;//获取panel2控件中有多少控件//将里面所有的label都弄成空的for (int i = 0; i < labelNumber; i++){Label l = (Label)this.panel1.Controls[i];l.Text = "";l.Tag = "";}//遍历显示歌曲名称BianLiMusicList();}

十八、删除歌曲:

private void button27_Click(object sender, EventArgs e){Button pb = (Button)sender;int index = Convert.ToInt32(pb.Tag);//每一个删除按钮的Tag里都记录着对应的序号,在这里获取序号,直接在chooseMusic集合里删除。string currentMusic = this.axWindowsMediaPlayer1.Text.ToString();//当前正在播放歌曲的名称string listMusic = chooseMusic[index].Song_name;if (listMusic.Equals(currentMusic)){MessageBox.Show("当前是第一首歌,不能删除");return;}//删除的序号必须不能大于chooseMusic的实际长度,否则不执行操作if (index + 1 <= chooseMusic.Count){chooseMusic.RemoveAt(index);FlushList();}//重新遍历歌曲列表BianLiMusicList();}

十九、顶歌:

private void button26_Click(object sender, EventArgs e){Button pb = (Button)sender;int index = Convert.ToInt32(pb.Tag);//每一个Button的Tag里都记录着对应的序号,在这里获取序号,//直接在chooseMusic集合里操作。string currentMusic = this.axWindowsMediaPlayer1.Tag.ToString();//当前正在播放歌曲的名称string listMusic = chooseMusic[index].Song_name;if (listMusic.Equals(currentMusic)){MessageBox.Show("已经是第一首歌,不能顶歌?");return;}int upIndex = index - 1;if (upIndex == 0){ //顶歌时,每顶一次,该歌曲就往前排名多一位,当从第二位顶到第一位时//如果第一位的歌曲正在播放,则不能继续顶if (!currentMusic.Equals("now")){MessageBox.Show("第一首正在播放,不能置顶");return;}}Song mu = chooseMusic[index - 1];chooseMusic[index - 1] = chooseMusic[index];chooseMusic[index] = mu;FlushList();}

二十、已点歌曲的上一页:

private void button29_Click(object sender, EventArgs e){//实现分页功能if (pagenow_yidian > 1){pagenow_yidian -= 1;//点击下一页的时候页数-1//遍历控件将里面所有显示的数据清空,方便继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel1.Controls[i];la.Text = "";}try{//遍历控件,继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel1.Controls[i];//如果再使用下标的话,下标还是从0开始,我们需要继续添加数据//7(6) 6    1la.Text = chooseMusic[(pagenow_yidian - 1) * pagesize + i].Song_name;}}catch (Exception ex){this.button2.Enabled = false;this.button1.Enabled = true;}}}

二十一、已点歌曲的下一页:

 private void button30_Click(object sender, EventArgs e){//根据性别查询的歌曲数量int count = chooseMusic.Count();//根据数量计算页数int page_count = 0;if (count % pagesize != 0){page_count = count / pagesize + 1;}else{page_count = count / pagesize;}// MessageBox.Show(page_count.ToString());if (pagenow_yidian <= page_count - 1){//实现分页功能pagenow_yidian += 1;//点击下一页的时候页数+1//遍历控件将里面所有显示的数据清空,方便继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel1.Controls[i];la.Text = "";}try{//遍历控件,继续添加数据for (int i = 0; i < pagesize; i++){Label la = (Label)this.panel1.Controls[i];//如果再使用下标的话,下标还是从0开始,我们需要继续添加数据//  MessageBox.Show(selectMusic[(pagenow - 1) * pagesize + i].Song_name);//7(6) 6    1la.Text = chooseMusic[(pagenow_yidian - 1) * pagesize + i].Song_name;}}catch (Exception ex){this.button2.Enabled = false;this.button1.Enabled = true;}}else{MessageBox.Show("已经是最后一页了");}}

下面是数据库脚本代码:

USE [master]
GO
/****** Object:  Database [MyKTV]    Script Date: 2019/5/31 8:56:21 ******/
CREATE DATABASE [MyKTV]CONTAINMENT = NONEON  PRIMARY 
( NAME = N'MyKTV', FILENAME = N'D:\DB\MyKTV项目\MyKTV.mdf' , SIZE = 7168KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )LOG ON 
( NAME = N'MyKTV_log', FILENAME = N'D:\DB\MyKTV项目\MyKTV_log.ldf' , SIZE = 3136KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [MyKTV] SET COMPATIBILITY_LEVEL = 90
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [MyKTV].[dbo].[sp_fulltext_database] @action = 'disable'
end
GO
ALTER DATABASE [MyKTV] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [MyKTV] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [MyKTV] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [MyKTV] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [MyKTV] SET ARITHABORT OFF 
GO
ALTER DATABASE [MyKTV] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [MyKTV] SET AUTO_CREATE_STATISTICS ON 
GO
ALTER DATABASE [MyKTV] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [MyKTV] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [MyKTV] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [MyKTV] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [MyKTV] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [MyKTV] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [MyKTV] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [MyKTV] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [MyKTV] SET  DISABLE_BROKER 
GO
ALTER DATABASE [MyKTV] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [MyKTV] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [MyKTV] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [MyKTV] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [MyKTV] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [MyKTV] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [MyKTV] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [MyKTV] SET RECOVERY FULL 
GO
ALTER DATABASE [MyKTV] SET  MULTI_USER 
GO
ALTER DATABASE [MyKTV] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [MyKTV] SET DB_CHAINING OFF 
GO
ALTER DATABASE [MyKTV] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO
ALTER DATABASE [MyKTV] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
EXEC sys.sp_db_vardecimal_storage_format N'MyKTV', N'ON'
GO
USE [MyKTV]
GO
/****** Object:  Table [dbo].[admin_info]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[admin_info]([admin_id] [int] IDENTITY(1,1) NOT NULL,[admin_pwd] [varchar](50) NOT NULL,[admin_name] [varchar](50) NOT NULL,CONSTRAINT [PK_admin_info] PRIMARY KEY CLUSTERED 
([admin_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[resource_path]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[resource_path]([resource_id] [int] IDENTITY(1,1) NOT NULL,[resource_type] [nvarchar](100) NOT NULL,[resource_path] [nvarchar](300) NOT NULL,CONSTRAINT [PK_resource_path] PRIMARY KEY CLUSTERED 
([resource_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO
/****** Object:  Table [dbo].[singer_info]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[singer_info]([singer_id] [int] IDENTITY(1,1) NOT NULL,[singer_name] [nvarchar](50) NOT NULL,[singertype_id] [int] NOT NULL,[singer_gender] [nvarchar](50) NULL,[singer_photo_url] [nvarchar](200) NULL,[singer_description] [nvarchar](200) NULL,CONSTRAINT [PK_singer_info] PRIMARY KEY CLUSTERED 
([singer_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO
/****** Object:  Table [dbo].[singer_type]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[singer_type]([singertype_id] [int] IDENTITY(1,1) NOT NULL,[singertype_name] [varchar](50) NOT NULL,CONSTRAINT [PK_singer_type] PRIMARY KEY CLUSTERED 
([singertype_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[song_info]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[song_info]([song_id] [int] IDENTITY(1,1) NOT NULL,[song_name] [varchar](50) NOT NULL,[song_ab] [varchar](50) NOT NULL,[song_word_count] [int] NOT NULL,[songtype_id] [int] NOT NULL,[singer_id] [int] NULL,[song_url] [varchar](200) NOT NULL,[song_play_count] [int] NULL,[song_ban] [varchar](50) NULL,CONSTRAINT [PK_song_info] PRIMARY KEY CLUSTERED 
([song_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[song_type]    Script Date: 2019/5/31 8:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[song_type]([songtype_id] [int] IDENTITY(1,1) NOT NULL,[songtype_name] [varchar](50) NOT NULL,CONSTRAINT [PK_song_type] PRIMARY KEY CLUSTERED 
([songtype_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[admin_info] ON INSERT [dbo].[admin_info] ([admin_id], [admin_pwd], [admin_name]) VALUES (2, N'bdqn', N'jbit')
SET IDENTITY_INSERT [dbo].[admin_info] OFF
SET IDENTITY_INSERT [dbo].[resource_path] ON INSERT [dbo].[resource_path] ([resource_id], [resource_type], [resource_path]) VALUES (1, N'singer_photo', N'D:\Program Files\MyKTV\ReSource\singerPhoto')
INSERT [dbo].[resource_path] ([resource_id], [resource_type], [resource_path]) VALUES (3, N'song', N'D:\Program Files\MyKTV\ReSource\song')
SET IDENTITY_INSERT [dbo].[resource_path] OFF
SET IDENTITY_INSERT [dbo].[singer_info] ON INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (13, N'BOBO', 1, N'组合', N'BOBO.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (14, N'薛之谦', 1, N'男', N'薛之谦.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (15, N'后弦', 1, N'男', N'后弦.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (16, N'李宇春', 1, N'女', N'李宇春.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (17, N'方大同', 2, N'男', N'方大同.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (18, N'何韵诗', 2, N'女', N'何韵诗.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (19, N'侧田  ', 2, N'男', N'侧田.jpg ', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (20, N'周杰伦', 3, N'男', N'周杰伦.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (21, N'苏打绿', 3, N'组合', N'苏打绿.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (22, N'SHE', 3, N'组合', N'SHE.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (23, N'王若琳', 3, N'女', N'王若琳.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (24, N'蔡依林', 3, N'女', N'蔡依林.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (25, N'后街男孩', 4, N'组合', N'后街男孩.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (26, N'林肯公园', 4, N'组合', N'林肯公园.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (27, N'Michael Jackson', 4, N'男', N'Michael Jackson.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (28, N'Avril Ramona Lavigne ', 4, N'女', N'Avril Ramona Lavigne.jpg ', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (29, N'super junior', 5, N'组合', N'super junior.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (30, N'东方神起', 5, N'组合', N'东方神起.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (31, N'李孝利', 5, N'女', N'李孝利.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (32, N'Rain', 5, N'男', N'Rain.jpg', NULL)
INSERT [dbo].[singer_info] ([singer_id], [singer_name], [singertype_id], [singer_gender], [singer_photo_url], [singer_description]) VALUES (33, N'安室奈美惠', 5, N'女', N'安室奈美惠.jpg', NULL)
SET IDENTITY_INSERT [dbo].[singer_info] OFF
SET IDENTITY_INSERT [dbo].[singer_type] ON INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (1, N'大陆')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (2, N'香港')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (3, N'台湾')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (4, N'欧美')
INSERT [dbo].[singer_type] ([singertype_id], [singertype_name]) VALUES (5, N'日韩')
SET IDENTITY_INSERT [dbo].[singer_type] OFF
SET IDENTITY_INSERT [dbo].[song_info] ON INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (83, N'爱拼才会赢', N'APCHY', 5, 1, 16, N'爱拼才会赢.mp3', 5, N'伴爱拼才会赢.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (84, N'大侠霍元甲(万里长城永不倒)', N'DXHYJ', 12, 1, 16, N'大侠霍元甲(万里长城永不倒).mp3', 5, N'伴大侠霍元甲(万里长城永不倒).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (85, N'等你一万年', N'DNYWN', 5, 1, 16, N'等你一万年.mp3', 5, N'伴等你一万年.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (86, N'一万个理由', N'YWGLY', 5, 1, 16, N'一万个理由.mp3', 5, N'伴一万个理由.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (87, N'三个和尚', N'SGHS', 4, 1, 16, N'三个和尚.mp3', 5, N'伴三个和尚.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (89, N'冬天里的一把火', N'DTLDYBH', 7, 1, 16, N'冬天里的一把火.mp3', 5, N'伴冬天里的一把火.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (90, N'一翦梅', N'YJM', 3, 1, 16, N'一翦梅.mp3', 5, N'伴一翦梅.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (91, N'摘花椒', N'ZHJ', 3, 1, 16, N'摘花椒.mp3', 5, N'伴摘花椒.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (92, N'亲圪蛋下河洗衣裳', N'QQDXHXY', 7, 1, 16, N'亲圪蛋下河洗衣裳.mp3', 5, N'伴亲圪蛋下河洗衣裳.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (93, N'荷塘月色', N'HTYS', 4, 1, 16, N'荷塘月色.mp3', 5, N'伴荷塘月色.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (94, N' 一个人的寂寞两个人的错', N'YGRDJMLGRDC', 11, 1, 16, N' 一个人的寂寞两个人的错.mp3', 5, N'伴 一个人的寂寞两个人的错.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (95, N'何必用钱谈感情', N'HBYQTGQ', 7, 1, 16, N'何必用钱谈感情.mp3', 5, N'伴何必用钱谈感情.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (96, N'毛委员和我们在一起', N'MWQHWMZYQ', 9, 1, 16, N'毛委员和我们在一起.mp3', 5, N'伴毛委员和我们在一起.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (97, N'你潇洒我漂亮', N'NXSWPL', 6, 1, 16, N'你潇洒我漂亮.mp3', 5, N'伴你潇洒我漂亮.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (98, N'卡夫卡', N'KFK', 3, 1, 16, N' 卡夫卡.mp3', 5, N'伴 卡夫卡.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (99, N'难忘今宵', N'NWJX', 4, 1, 16, N'难忘今宵.mp3', 5, N'伴难忘今宵.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (100, N'做我老婆好不好', N'ZWLPHBH', 7, 1, 16, N' 做我老婆好不好.mp3', 5, N'伴 做我老婆好不好.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (101, N'谁他妈没织过毛衣', N'STMMZGMY', 8, 1, 16, N'谁他妈没织过毛衣.mp3', 5, N'伴谁他妈没织过毛衣.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (102, N'新贵妃醉酒', N'XGFZJ', 6, 1, 16, N'新贵妃醉酒.mp3', 5, N'伴新贵妃醉酒.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (103, N'刚好遇见你', N'GHYJN', 6, 1, 16, N'刚好遇见你.mp3', 5, N'伴刚好遇见你.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (104, N'大中国', N'DZG', 3, 1, 16, N'大中国.mp3', 5, N'伴大中国.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (105, N'策马奔腾(交响乐版)', N'CMBT', 4, 1, 16, N'策马奔腾(交响乐版).mp3', 5, N'伴策马奔腾(交响乐版).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (106, N'歌唱二小放牛郎', N'GCEXFNL', 7, 1, 16, N'歌唱二小放牛郎.mp3', 5, N'伴歌唱二小放牛郎.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (107, N'荷塘月色', N'HTYS', 4, 1, 16, N'荷塘月色(交响乐版).mp3', 5, N'伴荷塘月色(交响乐版).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (108, N'绿旋风', N'LXF', 3, 1, 16, N'绿旋风.mp3', 5, N'伴绿旋风.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (109, N'粉红色的回忆', N'FHSDHY', 6, 1, 16, N'粉红色的回忆.mp3', 5, N'伴粉红色的回忆.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (110, N'我和草原有个约定', N'WHCYYGYD', 8, 1, 16, N'我和草原有个约定.mp3', 5, N'伴我和草原有个约定.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (111, N'手放开', N'SFK', 3, 1, 16, N'手放开.mp3', 5, N'伴手放开.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (112, N'啊朋友 再见', N'APYZJ', 5, 1, 13, N'啊朋友 再见.mp3', 1, N'伴啊朋友 再见.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (113, N'走天涯', N'ZTY', 3, 1, 13, N' 走天涯.mp3', 1, N'伴走天涯.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (114, N'相信未来', N'XXWL', 4, 1, 13, N'相信未来.mp3', 1, N'伴相信未来.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (115, N'QQ爱', N'QQA', 3, 1, 13, N'QQ爱.mp3', 1, N'QQ爱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (116, N'不要在我寂寞的时候说爱我', N'BYZWJMDSHSAW', 12, 1, 13, N'不要在我寂寞的时候说爱我.mp3', 1, N'伴不要在我寂寞的时候说爱我.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (117, N'老爸老妈', N'LBLM', 4, 1, 13, N'老爸老妈.mp3', 1, N'伴老爸老妈.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (118, N'民歌大联唱', N'MGDLC', 5, 2, 15, N'民歌大联唱.mp3', 2, N'伴民歌大联唱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (119, N'天上不会掉馍馍', N'TSBHDMM', 7, 2, 15, N'天上不会掉馍馍.mp3', 2, N'伴天上不会掉馍馍.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (120, N'五哥放羊', N'WGFY', 4, 2, 15, N'五哥放羊.mp3', 2, N'伴五哥放羊.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (121, N'有一种爱叫做放手', N'YYZAJZFS', 8, 2, 15, N'有一种爱叫做放手.mp3', 2, N'伴有一种爱叫做放手.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (122, N'刀剑如梦2.0', N'DJRM', 4, 2, 15, N'刀剑如梦2.0.mp3', 2, N'伴刀剑如梦2.0.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (123, N'三十里铺', N'SSLP', 4, 2, 15, N' 三十里铺.mp3', 2, N'伴三十里铺.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (124, N'在心里从此永远有个你', N'ZXLCCYYYGN', 10, 3, 16, N'在心里从此永远有个你.mp3', 3, N'伴 在心里从此永远有个你.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (125, N'英雄谁属', N'YXSS', 4, 3, 16, N' 英雄谁属.mp3', 3, N'伴英雄谁属.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (126, N'吉祥三宝', N'JXSB', 4, 3, 16, N' 吉祥三宝.mp3', 3, N'伴吉祥三宝.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (127, N'日不落(Live)', N'RBL', 3, 3, 16, N'日不落(Live).mp3', 3, N'伴日不落(Live).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (128, N'山西茉莉花', N'SXMLH', 5, 3, 16, N'山西茉莉花.mp3', 3, N'伴山西茉莉花.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (129, N'挣点小钱', N'ZDXQ', 4, 3, 16, N'挣点小钱.mp3', 3, N'伴挣点小钱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (130, N'别洞天', N'BDT', 3, 4, 17, N'  别洞天.mp3', 4, N'伴别洞天.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (131, N'金珑璁', N'JLE', 3, 4, 17, N'  金珑璁.mp3', 4, N'伴金珑璁.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (132, N'水岸风堤', N'SAFT', 4, 4, 17, N'水岸风堤.mp3', 4, N'伴水岸风堤.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (133, N'笑问客', N'XWK', 3, 4, 17, N'笑问客.mp3', 4, N'伴笑问客.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (134, N'红太阳', N'HTY', 3, 4, 17, N'红太阳.mp3', 4, N'伴红太阳.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (135, N'千千阙歌', N'QQJG', 4, 4, 17, N'千千阙歌.mp3', 4, N'伴千千阙歌.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (136, N'白狐', N'BH', 2, 5, 18, N'白狐.mp3', 5, N'伴白狐.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (137, N'九月九的酒', N'JYJDJ', 5, 5, 18, N'九月九的酒.mp3', 5, N'伴九月九的酒.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (138, N'全世界最伤心的人', N'QSJZSXDR', 8, 5, 18, N'全世界最伤心的人.mp3', 5, N'伴全世界最伤心的人.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (139, N'爱情骗子我问你', N'AQPZWWN', 7, 5, 18, N'爱情骗子我问你.mp3', 5, N'伴 爱情骗子我问你.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (140, N'爱人跟人走', N'ARGRZ', 5, 5, 18, N'爱人跟人走.mp3', 5, N'伴爱人跟人走.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (141, N'边做边爱', N'BZBA', 4, 5, 18, N'边做边爱.mp3', 5, N'伴边做边爱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (142, N'哥 只是个传说', N'GZSGCS', 6, 6, 19, N' 哥 只是个传说.mp3', 6, N'伴哥 只是个传说.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (143, N'稳稳的幸福', N'WWDXF', 5, 6, 19, N'稳稳的幸福.mp3', 6, N'伴稳稳的幸福.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (144, N'男人就是累', N'NRJSL', 5, 6, 19, N'男人就是累.mp3', 6, N'伴男人就是累.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (145, N'偷偷的哭', N'TTDK', 4, 6, 19, N'偷偷的哭.mp3', 6, N'伴偷偷的哭.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (146, N'乱红(笛)', N'LH', 2, 6, 19, N'乱红(笛).mp3', 6, N'伴乱红(笛).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (147, N'北郊', N'BJ', 2, 6, 19, N'北郊.mp3', 6, N'伴北郊.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (148, N'十不该', N'SBG', 3, 1, 20, N'十不该.mp3', 7, N'伴十不该.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (149, N'今生缘', N'JSY', 3, 1, 20, N'今生缘.mp3', 7, N'伴今生缘.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (150, N'茉莉花', N'MLH', 3, 1, 20, N'茉莉花.mp3', 7, N'伴茉莉花.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (151, N'一无所有', N'YWSY', 4, 1, 20, N'一无所有.mp3', 7, N'伴一无所有.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (152, N'父亲', N'FQ', 2, 1, 20, N'父亲.mp3', 7, N'伴父亲.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (153, N'湘妃竹(箜篌独奏曲)', N'SFZ', 3, 1, 20, N'湘妃竹(箜篌独奏曲).mp3', 7, N'伴湘妃竹(箜篌独奏曲).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (154, N'败家娘们儿', N'BJNM', 4, 2, 21, N'败家娘们儿.mp3', 8, N'伴败家娘们儿.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (155, N'倍儿爽 (官方正式版)', N'BES', 3, 2, 21, N'倍儿爽 (官方正式版).mp3', 8, N'伴倍儿爽 (官方正式版).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (156, N'我们不一样', N'WMBYY', 5, 2, 21, N'我们不一样.mp3', 8, N'伴败我们不一样.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (157, N'悟空', N'WK', 2, 2, 21, N'悟空.mp3', 8, N'伴悟空.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (158, N'信天游(陕北民歌)', N'XTY', 3, 2, 21, N'信天游(陕北民歌).mp3', 8, N'伴信天游(陕北民歌).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (159, N'摘花椒(二)', N'ZHJ', 3, 2, 21, N'摘花椒(二).mp3', 8, N'伴摘花椒(二).mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (160, N'红星照我去战斗', N'HXZWQZD', 7, 3, 22, N'红星照我去战斗.mp3', 9, N'伴红星照我去战斗.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (161, N'梦醒时分', N'MXSF', 4, 3, 22, N'梦醒时分.mp3', 9, N'伴梦醒时分.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (162, N'花好月圆', N'HHYY', 4, 3, 22, N'花好月圆.mp3', 9, N'伴花好月圆.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (163, N'李伯伯要当红军', N'LBBYDHJ', 7, 3, 22, N'李伯伯要当红军.mp3', 9, N'伴李伯伯要当红军.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (164, N'相亲相爱', N'XJXA', 4, 3, 22, N'相亲相爱.mp3', 9, N'伴相亲相爱.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (165, N'有钱男子汉没钱汉子难', N'YQNZHMQHZN', 10, 3, 22, N'有钱男子汉没钱汉子难.mp3', 9, N'伴有钱男子汉没钱汉子难.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (166, N'当', N'D', 1, 4, 23, N'当.mp3', 10, N'伴当.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (167, N'树上的鸟儿成双对', N'SSDNECSD', 8, 4, 23, N'树上的鸟儿成双对.mp3', 10, N'伴树上的鸟儿成双对.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (168, N'青年团员之歌', N'NNTYZG', 6, 4, 23, N'青年团员之歌.mp3', 10, N'伴青年团员之歌.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (169, N'一万个理由', N'YWGLY', 5, 4, 23, N'一万个理由.mp3', 10, N'伴一万个理由.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (170, N'火苗', N'HM', 2, 4, 23, N'火苗.mp3', 10, N'伴火苗.mp3')
INSERT [dbo].[song_info] ([song_id], [song_name], [song_ab], [song_word_count], [songtype_id], [singer_id], [song_url], [song_play_count], [song_ban]) VALUES (171, N'忐忑', N'TT', 2, 4, 23, N'忐忑.mp3', 10, N'伴忐忑.mp3')
SET IDENTITY_INSERT [dbo].[song_info] OFF
SET IDENTITY_INSERT [dbo].[song_type] ON INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (1, N'热门流行')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (2, N'经典老歌')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (3, N'影视金曲')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (4, N'游戏动漫')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (5, N'京剧戏曲')
INSERT [dbo].[song_type] ([songtype_id], [songtype_name]) VALUES (6, N'儿歌')
SET IDENTITY_INSERT [dbo].[song_type] OFF
ALTER TABLE [dbo].[singer_info] ADD  CONSTRAINT [DF_singer_info_singer_gender]  DEFAULT ('男') FOR [singer_gender]
GO
ALTER TABLE [dbo].[song_info] ADD  CONSTRAINT [DF_song_info_song_play_count]  DEFAULT ((0)) FOR [song_play_count]
GO
ALTER TABLE [dbo].[singer_info]  WITH CHECK ADD  CONSTRAINT [FK_singer_info_singer_type] FOREIGN KEY([singertype_id])
REFERENCES [dbo].[singer_type] ([singertype_id])
GO
ALTER TABLE [dbo].[singer_info] CHECK CONSTRAINT [FK_singer_info_singer_type]
GO
ALTER TABLE [dbo].[song_info]  WITH CHECK ADD  CONSTRAINT [FK_song_info_singer_info] FOREIGN KEY([singer_id])
REFERENCES [dbo].[singer_info] ([singer_id])
GO
ALTER TABLE [dbo].[song_info] CHECK CONSTRAINT [FK_song_info_singer_info]
GO
ALTER TABLE [dbo].[song_info]  WITH CHECK ADD  CONSTRAINT [FK_song_info_song_type] FOREIGN KEY([songtype_id])
REFERENCES [dbo].[song_type] ([songtype_id])
GO
ALTER TABLE [dbo].[song_info] CHECK CONSTRAINT [FK_song_info_song_type]
GO
ALTER TABLE [dbo].[singer_info]  WITH CHECK ADD  CONSTRAINT [CK_singer_info] CHECK  (([singer_gender]='男' OR [singer_gender]='女' OR [singer_gender]='组合'))
GO
ALTER TABLE [dbo].[singer_info] CHECK CONSTRAINT [CK_singer_info]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理员Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'admin_info', @level2type=N'COLUMN',@level2name=N'admin_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'密码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'admin_info', @level2type=N'COLUMN',@level2name=N'admin_pwd'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'管理员姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'admin_info', @level2type=N'COLUMN',@level2name=N'admin_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'资源类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'resource_path', @level2type=N'COLUMN',@level2name=N'resource_type'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'资源路径' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'resource_path', @level2type=N'COLUMN',@level2name=N'resource_path'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singertype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手性别:男、女、组合' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_gender'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手肖像URL' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_info', @level2type=N'COLUMN',@level2name=N'singer_photo_url'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手分类编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_type', @level2type=N'COLUMN',@level2name=N'singertype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手分类名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'singer_type', @level2type=N'COLUMN',@level2name=N'singertype_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲名拼音' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_ab'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲名字数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_word_count'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'songtype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌手编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'singer_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲Url' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_url'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲播放次数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_info', @level2type=N'COLUMN',@level2name=N'song_play_count'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲分类编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_type', @level2type=N'COLUMN',@level2name=N'songtype_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'歌曲分类名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'song_type', @level2type=N'COLUMN',@level2name=N'songtype_name'
GO
USE [master]
GO
ALTER DATABASE [MyKTV] SET  READ_WRITE 
GO

数据库脚本放在sqlserver里面修改一下路径,直接执行即可。
前台下载链接:前台下载
后台下载链接:后台下载

还有设呢么问题下面留言评论~

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

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

相关文章

Java中“/”,“.”所代表的文件路径

转载自 Java中“/”&#xff0c;“.”所代表的文件路径 我们在开发的过程中&#xff0c;经常会去读、写文件。在读写文件的时候&#xff0c;就不得不写文件的路径&#xff0c;使用相对路径的方式有两种&#xff1a;”/”和 “.” 。在写文件的路径的时候&#xff0c;需要了解一…

Hibernate框架(1)

1.Hibernate框架简述 Hibernate的核心组件 在基于MVC设计模式的JAVA WEB应用中&#xff0c;Hibernate可以作为模型层/数据访问层。它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(Persistent Object,持久化对象)映射到数据库中…

通过 Transifex 中文化开源软件

如果您对于汉化软件充满热情, 我软已经发布了以下的开源产品在 Transifex 平台&#xff0c;让社区的小伙伴们参与翻译以及审核: 如何参与? – Transifex 的新手 登录 Transifex 如果您第一次使用 Transifex, 您可以新建立一个账号或是通过您的 GitHub, Google 或 LinkedIn 账号…

第六期.Net开源社群联合分享--除了情结和价格,Azure最适合什么场景?等你来讲趟坑的实战经验!

嘿嘿&#xff0c;大家好啊&#xff01;好荣幸啊这一期&#xff0c;能够咱们.NET开源社区一块来做这次线上分享会。 我就是各位小伙伴可爱而且博学而且低调而且人见人爱花见花开而且谦虚但是经常口不择言的主持人老板娘Grace。 这次有新朋友&#xff0c;有老朋友&#xff0c;有…

支付系统的防重设计

转载自 支付系统的防重设计 导读 “目前在互联网应用的大部分支付场景中&#xff0c;对接支付宝、微信移动支付产品这样需要用户参与支付流程的支付方式已经变得非常普遍&#xff0c;类似的还有PC端银行网银支付&#xff1b;而通过绑定用户银行卡、对接银行卡快捷支付通道直接…

Windows Server Containers 支持 Windows 开发者使用 Docker

在过去几年里&#xff0c;Docker 和容器已成为全球开发界和企业最热门的话题之一。去年秋天发布的 Windows Server 2016 支持 Windows 开发者使用容器&#xff0c;使得这一热门话题再次升温。Windows 和 Docker 是如何走到一起的&#xff1f; 一切始于 2014 年隆重举办的普吉特…

漫画:什么是二叉堆?(修正版)

转载自 漫画&#xff1a;什么是二叉堆&#xff1f;&#xff08;修正版&#xff09; 什么是二叉堆&#xff1f; 二叉堆本质上是一种完全二叉树&#xff0c;它分为两个类型&#xff1a; 1.最大堆 2.最小堆 什么是最大堆呢&#xff1f;最大堆任何一个父节点的值&#xff0c;都…

漫画:什么是堆排序

转载自 漫画&#xff1a;什么是堆排序 在上一篇漫画中&#xff0c;小灰介绍了 二叉堆 这样一种强大的数据结构&#xff1a; 漫画&#xff1a;什么是二叉堆&#xff1f;&#xff08;修正版&#xff09; 那么&#xff0c;这个二叉堆怎样来使用呢&#xff1f;我们这一期将会详…

监控——《微服务设计》读书笔记

在单块应用的世界里&#xff0c;当我们遇到问题时&#xff0c;我们至少清楚从哪里开始调查。网站访问速度&#xff1f;网站访问异常&#xff1f;CPU占用过高&#xff1f;这些都是单块应用程序的问题&#xff0c;单一的故障点会极大地简化对问题的排查。 而现在我们面对了多个微…

什么是 TCC分布式事务

转载自 什么是 TCC分布式事务 近两年微服务变得越来越火热&#xff0c;各种框架与组件的出现&#xff0c;更是为微服务的开发提供了便利。 我们都知道&#xff0c;每个微服务都是一个对应的小服务&#xff0c;多个服务之间可以方便的进行功能的组合&#xff0c;来形成功能更…

.NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇

Linux守护进程是Linux的后台服务进程&#xff0c;相当于Windows服务&#xff0c;对于为Linux开发服务程序的朋友来说&#xff0c;Linux守护进程相关技术是必不可少的&#xff0c;因为这个技术不仅仅是为了开发守护进程&#xff0c;还可以拓展到多进程&#xff0c;父子进程文件描…

选择大公司还是小公司

转载自 选择大公司还是小公司 本文转载自公众号 stormzhang&#xff0c;文中的“我”是原文作者。 前一段时间&#xff0c;我一知识星球的球友问我这么一个问题&#xff0c;说他是某 985 应届生&#xff0c;拿到了 BAT 一家互联网大公司的 offer&#xff0c;但同时他还拿到了…

未来的C#之只读引用与结构体

C中提供了const特性&#xff0c;使用该特性定义的参数&#xff0c;其所引用的参数或对象将不会被调用函数修改&#xff08;当然const还提供了更多的特性&#xff0c;参见“Const正确性”&#xff09;。在新的建议中&#xff0c;C#也将提供类似的特性。 只读ref参数 在C#中&am…

漫画:什么是优先队列

转载自 漫画&#xff1a;什么是优先队列 在之前的漫画中&#xff0c;我们介绍了二叉堆和堆排序。没看过的小伙伴可以看一看前文&#xff1a; 漫画&#xff1a;什么是二叉堆&#xff1f;&#xff08;修正版&#xff09; 漫画&#xff1a;什么是堆排序&#xff1f; 这一次&a…

安全——《微服务设计》读书笔记

身份认证和授权 1.单点登录&#xff08;SSO&#xff09; 当主体试图访问一个资源&#xff0c;他会被定向到一个身份提供者那里进行身份验证&#xff0c;身份提供者验明正向后会发消息给服务提供者&#xff0c;让服务提供者来决定是否允许它访问资源。 SAML和OpenID Connect/OAu…

支付对账系统怎么设计

转载自 支付对账系统怎么设计 支付对账系统是整个支付清结算体系中具体基础性意义的一个环节&#xff0c;是确保支付平台与各类第三方支付渠道数据一致性的关键系统&#xff0c;是商户资金结算、资金划拨、资金报表等逻辑准确运行的重要前提。 支付对账涉及账单下载处理、核心…

十二个 ASP.NET Core 例子

前言 在今天的博客中&#xff0c;我将介绍十几个可以在 ASP.NET Core 应用程序中使用的简单示例。从最简单的东西开始&#xff0c;比如 Options, 中间件&#xff0c;数据库&#xff0c;甚至 Nginx 或者 Docker。 首先确定你已经执行过了 dotnet restore , 然后运行 dotnet ru…