川哥哥

导航

欢迎进入MyKTV点歌系统展示

 一个项目,一分收获;一个项目,一些资源。Ktv项目也是一样的,所以我想分享我的收获,让你们获得你需要的资源。

     一. 那MyKTV点歌系统具体的功能有哪些呢?我们就来看看吧!

    1.MyKTV前台功能:

     01.歌星点歌 、拼音点歌 、数字点歌 、类型选择 、金榜排行

     02.切歌 、点歌 、重唱和退出

 

     2.MyKTV后台功能:

      01.歌手管理 、歌曲管理 、设置资源路径

      02.新增歌手、歌曲 ,查询歌手、歌曲信息,设置歌曲路径和退出

 

      二. 功能已经概括的差不多了,就让我们一起来看看MyKTV的项目吧

  四个辅助类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyKTV
{
    class KTVUtil
    {
        public static string picturePath = "";
        public static string songPath = "";
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyKTV
{
   class PlayList
    {
      
        public  static Song[] SongList=new Song[1000];
       //当前播放的歌曲在数组中的索引(已点列表)
        public static int SongIndex = 0;

       //点一首歌,相当于将歌曲放在数组中
        public  static bool AddSong(Song song)
        {
            bool result = false;//记录添加歌曲是否成功
            for (int i = 0; i < SongList.Length; i++)
            {
                if (SongList [i]==null)
                {
                    SongList[i] = song;
                    result = true;
                    break;
                }
            }
            return result;
        }
        //获取当前播放的歌曲  既然是获取当前播放的歌曲,返回值肯定是Song类型
       public  static Song GetPlaySong()
        {
            if (SongList [SongIndex]!=null)
            {
                return SongList[SongIndex];
            }
            else
            {
                return null;
            }
        }
       //播放下一首
        public static void Next()
        {
            if (SongList[SongIndex] != null && SongList[SongIndex].PlayStar== SongPlayState.again)
            {
                SongList[SongIndex].SongPlayed();
            }
            else
            {
                SongIndex++;
                if (SongList[SongIndex]!=null)
                {
                     SongList[SongIndex].SongPlayed();
                }
               
            }
        }
       //当前播放的歌曲名称
        public static string PlaySongName()
        {
            string songname = "";
            if (SongList[SongIndex]!=null)
            {
                songname=SongList[SongIndex].SongName;
            }
            return songname;
        }
       //下一首要播放的歌曲名称
        public static string NextSongName()
        {
            string songname = "";
            //if (SongList[SongIndex+1] != null&&SongList[0]!=null)
            //{
            //    songname = SongList[SongIndex+1].SongName;

            //}
            //return songname;

            if (SongList[0] != null && SongList[SongIndex + 1] == null)
            {
                songname = "待添加....";
                return songname;
            }
            else
            {
                if (SongList[0] != null)
                {
                    songname = SongList[SongIndex + 1].SongName;
                    return songname;
                }
                else
                {
                    return string.Empty;
                }

            }
        }
       //重唱
        public static void PalyAgain()
        {
            if (SongList[SongIndex]!=null)
            {
                SongList[SongIndex].SongAgain();

            }
        }
       
       //切歌
        public static void Cutsong()
        {
            //获取到当前播放的歌曲改变播放状态
            if (SongList [SongIndex] != null)
            {
                SongList [SongIndex].PlayStar = SongPlayState.cut;
                SongIndex++;   //改变歌曲索引,播放下一首
            }
            

        }
       ////切歌
       // public static void CutSong(int index)
       // {
       //     //迭代变量,代表切歌位置
       //     int i;
       //     if (index==-1)//循环变量,代表切歌位置
       //     {
       //         i=SongIndex;
       //     }else
       //     {
       //         //从切歌的位置开始,将歌曲逐个向前移动一个位置
       //         i=index;
       //     }
       //     SongList[i].SongCut();
       //     while (SongList[i]!=null)
       //     {
       //         SongList[i]=SongList[i+1];
       //         i++;
              
       //     }
           
       // }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyKTV
{
 enum SongPlayState
    {
        //未播放,播放,重播,切歌
        unplayer, played, again, cut
    }
  public class Song
    {
      
        private string songName;

        public string SongName
        {
            get { return songName; }
            set { songName = value; }
        }
        private string songUrl;

        public string SongUrl
        {
            get { return songUrl; }
            set { songUrl = value; }
        }
        //歌曲播放状态默认为未播放
        private SongPlayState playStar = SongPlayState.unplayer;

      internal SongPlayState PlayStar
        {
            get { return playStar; }
            set { playStar = value; }
        }

       

        //将歌曲状态改为播放
        public void SongPlayed()
        {

            this.PlayStar = SongPlayState.played;
        }
        //歌曲状态重播
        public void SongAgain()
        {
            this.PlayStar = SongPlayState.again;
        }
        //歌曲状态切歌
        public void SongCut()
        {
            this.PlayStar = SongPlayState.cut;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyKTV
{
    class SqlUtil
    {
        public static string str = "data source=.;initial catalog=KTV;user id=sa;pwd=718191";
    }
}

 

        1.首先就是展现KTV的主界面,让我们先了解一下那些功能

     

         01.实现各个共功能的主代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyKTV
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            //InitializeComponent();
        }

        private void btnGX_Click(object sender, EventArgs e)
        {
            frmGXDG1 fg = new frmGXDG1();
            fg.form1 = this;
            fg.Show();
            this.Hide();
        }
        //获取歌曲路径
        public void SongPath()
        {
            string sql = "select resourcepath from resourcepath where resourceid=1";
            SqlConnection con = new SqlConnection(SqlUtil.str);
            SqlCommand com = new SqlCommand(sql, con);
            try
            {
                con.Open();
                KTVUtil.songPath= com.ExecuteScalar().ToString();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                con.Close();
            }
        }
        private void frmMain_Load(object sender, EventArgs e)
        {
            
            //读取歌曲路径
            SongPath();
            //读取resourcepath表中的歌手图片
            string sql = "select resourcepath from resourcepath where resourceid=2";
            SqlConnection con = new SqlConnection(SqlUtil.str);
            SqlCommand com = new SqlCommand(sql,con);
            try
            {
                con.Open();
                KTVUtil.picturePath=com.ExecuteScalar().ToString();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                con.Close();
            }
        }
        private Song song;//当前播放的歌曲
        //播放歌曲
        public void PlaySong()
        {
            //调用播放当前歌曲方法
            this.song = PlayList.GetPlaySong();
            if (song!=null)
            {
                //改变播放状态为播放
                this.song.SongPlayed();
                Player2.URL = KTVUtil.songPath + "\\" + this.song.SongUrl;
               
                txtIng.Text = PlayList.PlaySongName();
                
            }
        }

        private void btnPY_Click(object sender, EventArgs e)
        {
            frmPY fp = new frmPY();
            fp.Show();
        }

        private void btnSZ_Click(object sender, EventArgs e)
        {
            frmNum fn = new frmNum();
            fn.Show();
        }

        private void btnLX_Click(object sender, EventArgs e)
        {
            frmType ft = new frmType();
            ft.getSong(song);
            
            ft.Show();
        }

        private void btnJB_Click(object sender, EventArgs e)
        {
            frmPaiHang fp = new frmPaiHang();
            fp.Show();
        }
         
        private void toolStripButton3_Click(object sender, EventArgs e)
        {

                frmYiDian fy = frmYiDian.getFrm();
                fy.Show();
            
            
        }

        private void panel2_Paint(object sender, PaintEventArgs e)
        {

        }
       public static int cutSong = 0;
       private void timer1_Tick(object sender, EventArgs e)
       {
           String nextSongName = PlayList.NextSongName();
           txtNext.Text = nextSongName;
           if (song == null)
           {
               PlaySong();
           }
           if (Player2.playState == WMPLib.WMPPlayState.wmppsStopped)
           {
               song = null;
               PlayList.Next();
           }
           if (song != null && this.song.PlayStar == SongPlayState.cut)
           {
               this.song = null;
           }
           if (song != null)
           {
               if (this.song.PlayStar == SongPlayState.again)
               {
                   this.song = null;
               }
           }
       }
        private void toolStripButton5_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Player2_Enter(object sender, EventArgs e)
        {

        }

        private void timNow_Tick(object sender, EventArgs e)
        {
           
           
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {

            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
            if (result==DialogResult.Yes)
            {
                PlayList.Cutsong();
 
            }
           
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
           
            PlayList.PalyAgain();
            
        }

        private void txtIng_TextChanged(object sender, EventArgs e)
        {
            //txtIng.Text = PlayList.PlaySongName();
        }

        private void txtNext_TextChanged(object sender, EventArgs e)
        {
           // txtNext.Text = PlayList.NextSongName();
        }
        
        private void timer2_Tick(object sender, EventArgs e)
        {
           
        }
        //原唱伴唱(可惜没实现)
        private void button1_Click(object sender, EventArgs e)
        {
            if (Player2.settings.balance==100)
            {
                Player2.settings.balance = -100;
            }
            else
            {
                Player2.settings.balance = 100;
            }
        }
       
    }
}

     2.歌星点歌(三个listview的集成窗体)

          01.歌手类别

    

     02.歌手地区

     

 

     03.歌手姓名

    

  

    04.代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyKTV
{
    public partial class frmGXDG1 : Form
    {
        public frmGXDG1()
        {
            InitializeComponent();
        }
        public int a = 1;//三个listview标示
        public int typeid = 0;
        public string sex = "组合";
        public  frmMain form1 = null;
        private void frmGXDG1_Load(object sender, EventArgs e)
        {
            this.listView2.Visible = false;
            this.listView3.Visible = false;
        }
        //动态加载第二个listView五个图片
        private void listView1_Click(object sender, EventArgs e)
        {
            a = 2;
            if (listView1.SelectedItems[0]!=null)
            {
                listView2.Visible = true;
                listView2.Location = listView1.Location;
                //记录第一个listview所选类型
                sex = listView1.SelectedItems[0].Tag.ToString();
            }
            string sql = "select singercountryid,singercountryname from singercountry";
            SqlConnection con = new SqlConnection(SqlUtil.str);
            SqlCommand com = new SqlCommand(sql, con);
            try
            {
                con.Open();
                SqlDataReader reader = com.ExecuteReader();
                
                listView2.Items.Clear();
                if (reader.HasRows)
                {
                    int num = 0;
                    while (reader.Read())
                    {
                        ListViewItem lv = new ListViewItem();
                        lv.Text = reader["singercountryname"].ToString();
                        lv.Tag = Convert.ToInt32(reader["singercountryid"]);
                       
                        lv.ImageIndex = num;
                        listView2.Items.Add(lv);
                        num++;
                    }
                    reader.Close();
                }
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                con.Close();
            }
        }

        private void listView2_Click(object sender, EventArgs e)
        {
            a = 3;
            if (listView2.SelectedItems[0]!=null)
            {
                listView2.Visible = false;
                listView3.Visible = true;
                listView3.Location = listView2.Location;
                //保存所选择的地区编号
               typeid = Convert.ToInt32(listView2.SelectedItems[0].Tag);
                string result=sex;
                if (sex!="组合")
                {
                   result=sex ;
                }
                string sql = "select singername,singerphotourl,singerid from singerinfo where singercountryid='"+typeid+"' and singersex='"+result+"'";
                SqlConnection con = new SqlConnection(SqlUtil.str);
                SqlCommand com = new SqlCommand(sql,con);
                try
                {
                    con.Open();
                    SqlDataReader reader = com.ExecuteReader();
                    listView3.Items.Clear();//清空listview列表集合
                    if (reader.HasRows)
                    {
                        int num = 0;//添加的图片下标
                        imageList3.Images.Clear();//情况图片集合
                        
                        while (reader.Read())
                        {
                            //读取图片地址
                            string path = KTVUtil.picturePath + "\\" + reader["singerphotourl"].ToString();
                            //把读取出来的图片添加到imagelist3上
                            imageList3.Images.Add(Image.FromFile(path));
                            ListViewItem lv = new ListViewItem();
                            lv.Text=reader["singername"].ToString();
                            lv.Tag = Convert.ToInt32(reader["singerid"]);
                            lv.ImageIndex = num;
                            listView3.Items.Add(lv);
                            num++;
                        }
                    }
                }
                catch (Exception)
                {

                    throw;
                }
                finally
                {
                    con.Close();
                }
            }
        }

        private void listView3_Click(object sender, EventArgs e)
        {
            string sql = @"select singername,songname,songurl,songid from singerinfo as s,songinfo as f
                            where s.singerid=f.singerid and singername='"+listView3.SelectedItems[0].Text+"'";
           
            
            frmSongList fs = new frmSongList();
            fs.sql = sql;
            fs.Show();
            
        }

        private void tsbYD_Click(object sender, EventArgs e)
        {
            frmYiDian fy = frmYiDian.getFrm();
            fy.Show();
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void tsbFH_Click(object sender, EventArgs e)
        {
            if (a==2)
            {
                a = 1;
                this.listView1.Visible = true;
                this.listView2.Visible = false;
                this.listView3.Visible = false;
            }else 
            if (a==3)
            {
                a = 2;
                 listView2.Visible = true;
                listView1.Visible = false;
                listView3.Visible = false;
            }else
            if (a==1)
            {

                form1.Show();
               
               
            }
        }

        private void tsbTC_Click(object sender, EventArgs e)
        {
            form1.Show();
           
            this.Close();
        }

        private void listView3_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void tsbCC_Click(object sender, EventArgs e)
        {
            PlayList.PalyAgain();
        }
      
        private void tsbQG_Click(object sender, EventArgs e)
        {
                        DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
                        if (result == DialogResult.Yes)
                        {
                            PlayList.Cutsong();
                        }
         }

       
    }
}

  05.歌曲列表

   

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyKTV
{
    public partial class frmSongList : Form
    {
        public string sql = "";
        public int count = 0;
        public frmSongList()
        {
            InitializeComponent();
        }

        private void frmSongList_Load(object sender, EventArgs e)
        {
            if (count != 0)
            {
                string numsql = "select singername,songname,songurl,songid from singerinfo as s,songinfo as f where s.singerid=f.singerid and songcount=" + count + "";
                NewMethod(numsql);
            }
            else
            {
                NewMethod(sql);
            }
        }
        //加载frmSongList控件里dgvList数据
        private void NewMethod(string sql)
        {
            dgvList.AutoGenerateColumns = false;
            SqlConnection con = new SqlConnection(SqlUtil.str);
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dgvList.DataSource = ds.Tables[0];
        }

        private void dgvList_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //点击某首歌曲,并将选中的歌曲名和路径赋给该对象()
            Song song = new Song();
            song.SongName = dgvList.SelectedRows[0].Cells[0].Value.ToString();
           
            string a = dgvList.SelectedRows[0].Cells[2].Value.ToString();
            song.SongUrl=a;
            PlayList.AddSong(song);
            string name = dgvList.SelectedRows[0].Cells[0].Value.ToString();
            addCount(name);

        }
        public void addCount(string name)
        {
            SqlConnection con = new SqlConnection(SqlUtil.str);
            string sql = "update songinfo set songplaycount+=1 where songname='"+name+"'";
            SqlCommand com = new SqlCommand(sql,con);
            try
            {
                con.Open();
                int num = com.ExecuteNonQuery();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                con.Close();
            }
        }

        private void dgvList_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

字数点歌

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyKTV
{
    public partial class frmNum : Form
    {
        public frmNum()
        {
            InitializeComponent();
        }
        int count = 0;
        private void btn1_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn1.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
           
        }

        private void btn2_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn2.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn3_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn3.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn4_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn4.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn5_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn5.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn6_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn6.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn7_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn7.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn8_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn8.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void btn9_Click(object sender, EventArgs e)
        {
            count = Convert.ToInt32(btn9.Text);
            frmSongList fs = new frmSongList();
            fs.count = count;
            fs.Show();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            PlayList.PalyAgain();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {

        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                PlayList.Cutsong();
            }
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            frmYiDian fy = frmYiDian.getFrm();
            fy.Show();
        }

        private void frmNum_Load(object sender, EventArgs e)
        {

        }
    }
}

金榜排行

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyKTV
{
    public partial class frmPaiHang : Form
    {
        public frmPaiHang()
        {
            InitializeComponent();
        }

        private void frmPaiHang_Load(object sender, EventArgs e)
        {
            Initial();
        }
        public void Initial()
        {
            SqlConnection con = new SqlConnection(SqlUtil.str);
            string sql = "select singername,songname,songplaycount,songurl from singerinfo as s,songinfo as f where s.singerid=f.singerid order by songplaycount desc";
            SqlCommand com = new SqlCommand(sql, con);
            try
            {
                con.Open();
                SqlDataReader reader = com.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        string songname = Convert.ToString(reader["songname"]);
                        string singername = Convert.ToString(reader["singername"]);
                        int count = Convert.ToInt32(reader["songplaycount"]);
                        string songurl = Convert.ToString(reader["songurl"]);
                        ListViewItem lv = new ListViewItem(songname);
                        lv.SubItems.Add(singername);
                        lv.SubItems.Add(count.ToString());
                        lv.SubItems.Add(songurl);
                        lvPH1.Items.Add(lv);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                con.Close();
            }
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            frmYiDian fy = frmYiDian.getFrm();
            fy.Show();
        }

        private void lvPH_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void lvPH_Click(object sender, EventArgs e)
        {
             
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void listView1_Click(object sender, EventArgs e)
        {
            Song song = new Song();
            song.SongName = lvPH1.SelectedItems[0].SubItems[0].Text;
            song.SongUrl = lvPH1.SelectedItems[0].SubItems[3].Text;
            PlayList.AddSong(song);
            frmSongList fs = new frmSongList();
            string name = lvPH1.SelectedItems[0].SubItems[0].Text;
            fs.addCount(name);
            this.lvPH1.Items.Clear(); 
            Initial();
            
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            PlayList.PalyAgain();
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                PlayList.Cutsong();
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.lvPH1.Items.Clear(); ;
            Initial();
        }
    }
}

类型点歌

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyKTV
{
    public partial class frmType : Form
    {
        public frmType()
        {
            InitializeComponent();
        }
        private Song song;//当前播放的歌曲
        public void getSong(Song so){
            this.song=so;
        }
        private void lvType_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
        //类型点歌
        private void lvType_Click(object sender, EventArgs e)
        {
            string sql = "select singername,songname,songurl,songid from singerinfo as s,songinfo as f where s.singerid=f.singerid and songtype='" +lvType.SelectedItems[0].Text+ "'";
            frmSongList fs = new frmSongList();
            fs.sql = sql;
            fs.Show();
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            frmYiDian fy = frmYiDian.getFrm();
            fy.Show();
        }

        private void frmType_Load(object sender, EventArgs e)
        {

        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            PlayList.PalyAgain();
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                PlayList.Cutsong();
            }
        }
    }
}

拼音点歌

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyKTV
{
    public partial class frmPY : Form
    {
        public frmPY()
        {
            InitializeComponent();
        }
        public string py = "";

        private void butA_Click(object sender, EventArgs e)
        {
            py += btnA.Text;
            txtPY.Text = py;
            select();
        }

        private void butB_Click(object sender, EventArgs e)
        {
            py += btnB.Text;
            txtPY.Text = py;
            select();
        }

        private void butC_Click(object sender, EventArgs e)
        {
            py += btnC.Text;
            txtPY.Text = py;
            select();
        }

        private void btnD_Click(object sender, EventArgs e)
        {
            py += btnD.Text;
            txtPY.Text = py;
            select();
        }

        private void btnE_Click(object sender, EventArgs e)
        {
            py += btnE.Text;
            txtPY.Text = py;
            select();
        }

        private void btnF_Click(object sender, EventArgs e)
        {
            py += btnF.Text;
            txtPY.Text = py;
            select();
        }

        private void btnG_Click(object sender, EventArgs e)
        {
            py += btnG.Text;
            txtPY.Text = py;
            select();
        }

        private void btnH_Click(object sender, EventArgs e)
        {
           
        }

        private void btnI_Click(object sender, EventArgs e)
        {
            py += btnI.Text;
            txtPY.Text = py;
            select();
        }
        private void btnK_Click(object sender, EventArgs e)
        {
            py += btnK.Text;
         txtPY.Text = py;
         select();
        }

        private void btnL_Click(object sender, EventArgs e)
        {
            py += btnL.Text;
         txtPY.Text = py;
         select();
        }

        private void btnM_Click(object sender, EventArgs e)
        {
            py += btnM.Text;
         txtPY.Text = py;
         select();
        }

        private void btnN_Click(object sender, EventArgs e)
        {
            py += btnN.Text;
             txtPY.Text = py;
             select();
        }

        private void btnO_Click(object sender, EventArgs e)
        {
            py += btnO.Text;
             txtPY.Text = py;
             select();
        }

        private void btnP_Click(object sender, EventArgs e)
        {
            py += btnP.Text;
         txtPY.Text = py;
         select();
        }

        private void btnQ_Click(object sender, EventArgs e)
        {
            py += btnQ.Text;
             txtPY.Text = py;
             select();
        }

        private void btnR_Click(object sender, EventArgs e)
        {
            py += btnR.Text;
             txtPY.Text = py;
             select();
        }

        private void btnS_Click(object sender, EventArgs e)
        {
            py += btnS.Text;
             txtPY.Text = py;
             select();
        }

        private void btnT_Click(object sender, EventArgs e)
        {
            py += btnT.Text;
             txtPY.Text = py;
             select();
        }

        private void btnU_Click(object sender, EventArgs e)
        {
            py += btnU.Text;
             txtPY.Text = py;
             select();
        }

        private void btnV_Click(object sender, EventArgs e)
        {
            py += btnV.Text;
             txtPY.Text = py;
             select();
        }

        private void btnW_Click(object sender, EventArgs e)
        {
            py += btnW.Text;
             txtPY.Text = py;
             select();
        }

        private void btnX_Click(object sender, EventArgs e)
        {
            py += btnX.Text;
             txtPY.Text = py;
             select();
        }

        private void btnY_Click(object sender, EventArgs e)
        {
            py += btnY.Text;
             txtPY.Text = py;
             select();
        }

        private void btnZ_Click(object sender, EventArgs e)
        {
            py += btnZ.Text;
             txtPY.Text = py;
             select();
        }

        private void btnJ_Click(object sender, EventArgs e)
        {
            py += btnJ.Text;
            txtPY.Text = py;
            select();
        }

        private void btnPY_Click(object sender, EventArgs e)
        {
            int length = py.Length;
            if (length>0)
            {
                py = py.Substring(0,length-1);
            txtPY.Text = py;
            select(); 
            }
            
        }
        //拼音模糊查询
        public void  select() {
            dgvPY.AutoGenerateColumns = false;
            string sql = @"select singername,songname,songurl,songid from singerinfo as s,songinfo as f
                            where s.singerid=f.singerid and songab like '" + txtPY.Text + "%'";
            SqlConnection con = new SqlConnection(SqlUtil.str);
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dgvPY.DataSource = ds.Tables[0];
        }

        private void txtPY_TextChanged(object sender, EventArgs e)
        {
            select();
        }

        private void btnH_Click_1(object sender, EventArgs e)
        {
            py += btnH.Text;
            txtPY.Text = py;
            select();
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            frmYiDian fy = frmYiDian.getFrm();
            fy.Show();
        }

        private void dgvPY_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            Song song = new Song();
            song.SongName = dgvPY.SelectedRows[0].Cells[0].Value.ToString();
           
            string a = dgvPY.SelectedRows[0].Cells[2].Value.ToString();
            song.SongUrl = a;

            PlayList.AddSong(song);
        }

        private void frmPY_Load(object sender, EventArgs e)
        {

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            PlayList.PalyAgain();
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                PlayList.Cutsong();
            }
        }
        }
    
}

已点列表

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyKTV
{
    public partial class frmYiDian : Form
    {
        private frmYiDian()
        {
            InitializeComponent();
        }
        public static frmYiDian frm;
        public static frmYiDian getFrm()
        {
            if (frm==null)
            {
                frm = new frmYiDian();
            }
            return frm;
        }

        public static int style = 1;
        private void lvYiDian_SelectedIndexChanged(object sender, EventArgs e)
        {
         
        }
        public void RefreshSongList()
        {
            lvYiDian.Items.Clear();//清空原列表
            for (int i = 0; i < PlayList.SongList.Length; i++)
            {
                if (PlayList.SongList[i]!=null)
                {
                    ListViewItem item = new ListViewItem(PlayList.SongList[i].SongName);
                    item.Tag = i;
                    //获取播放状态
                    string bofang = PlayList.SongList[i].PlayStar == SongPlayState.unplayer ? "未播放" : "已播放";
                    item.SubItems.Add(bofang);
                    lvYiDian.Items.Add(item);
                }
            }
        }

        private void frmYiDian_Load(object sender, EventArgs e)
        {
            style = 0;
            RefreshSongList();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            RefreshSongList();
        }

        private void frmYiDian_FormClosing(object sender, FormClosingEventArgs e)
        {
            style = 1;
        }

        private void 切歌ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                PlayList.Cutsong();
            }
        }

        private void 重唱ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PlayList.PalyAgain();
        }

    }
}

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace MyKTV{    public partial class frmMain : Form    {        public frmMain()        {            //InitializeComponent();        }
        private void btnGX_Click(object sender, EventArgs e)        {            frmGXDG1 fg = new frmGXDG1();            fg.form1 = this;            fg.Show();            this.Hide();        }        //获取歌曲路径        public void SongPath()        {            string sql = "select resourcepath from resourcepath where resourceid=1";            SqlConnection con = new SqlConnection(SqlUtil.str);            SqlCommand com = new SqlCommand(sql, con);            try            {                con.Open();                KTVUtil.songPath= com.ExecuteScalar().ToString();            }            catch (Exception)            {
                throw;            }            finally            {                con.Close();            }        }        private void frmMain_Load(object sender, EventArgs e)        {                        //读取歌曲路径            SongPath();            //读取resourcepath表中的歌手图片            string sql = "select resourcepath from resourcepath where resourceid=2";            SqlConnection con = new SqlConnection(SqlUtil.str);            SqlCommand com = new SqlCommand(sql,con);            try            {                con.Open();                KTVUtil.picturePath=com.ExecuteScalar().ToString();            }            catch (Exception)            {
                throw;            }            finally            {                con.Close();            }        }        private Song song;//当前播放的歌曲        //播放歌曲        public void PlaySong()        {            //调用播放当前歌曲方法            this.song = PlayList.GetPlaySong();            if (song!=null)            {                //改变播放状态为播放                this.song.SongPlayed();                Player2.URL = KTVUtil.songPath + "\\" + this.song.SongUrl;                               txtIng.Text = PlayList.PlaySongName();                            }        }
        private void btnPY_Click(object sender, EventArgs e)        {            frmPY fp = new frmPY();            fp.Show();        }
        private void btnSZ_Click(object sender, EventArgs e)        {            frmNum fn = new frmNum();            fn.Show();        }
        private void btnLX_Click(object sender, EventArgs e)        {            frmType ft = new frmType();            ft.getSong(song);                        ft.Show();        }
        private void btnJB_Click(object sender, EventArgs e)        {            frmPaiHang fp = new frmPaiHang();            fp.Show();        }                 private void toolStripButton3_Click(object sender, EventArgs e)        {
                frmYiDian fy = frmYiDian.getFrm();                fy.Show();                                }
        private void panel2_Paint(object sender, PaintEventArgs e)        {
        }       public static int cutSong = 0;       private void timer1_Tick(object sender, EventArgs e)       {           String nextSongName = PlayList.NextSongName();           txtNext.Text = nextSongName;           if (song == null)           {               PlaySong();           }           if (Player2.playState == WMPLib.WMPPlayState.wmppsStopped)           {               song = null;               PlayList.Next();           }           if (song != null && this.song.PlayStar == SongPlayState.cut)           {               this.song = null;           }           if (song != null)           {               if (this.song.PlayStar == SongPlayState.again)               {                   this.song = null;               }           }       }        private void toolStripButton5_Click(object sender, EventArgs e)        {            Application.Exit();        }
        private void Player2_Enter(object sender, EventArgs e)        {
        }
        private void timNow_Tick(object sender, EventArgs e)        {                              }
        private void toolStripButton2_Click(object sender, EventArgs e)        {
            DialogResult result = MessageBox.Show("确定要切歌吗?", "", MessageBoxButtons.YesNo);            if (result==DialogResult.Yes)            {                PlayList.Cutsong();             }                   }
        private void toolStripButton1_Click(object sender, EventArgs e)        {                       PlayList.PalyAgain();                    }
        private void txtIng_TextChanged(object sender, EventArgs e)        {            //txtIng.Text = PlayList.PlaySongName();        }
        private void txtNext_TextChanged(object sender, EventArgs e)        {           // txtNext.Text = PlayList.NextSongName();        }                private void timer2_Tick(object sender, EventArgs e)        {                   }        //原唱伴唱(可惜没实现)        private void button1_Click(object sender, EventArgs e)        {            if (Player2.settings.balance==100)            {                Player2.settings.balance = -100;            }            else            {                Player2.settings.balance = 100;            }        }           }}

 

posted on 2016-08-05 15:32  川哥哥  阅读(4534)  评论(0编辑  收藏  举报