专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WinForm

欢迎进来MyKTV前后台点歌系统展示

发布时间:2011-06-23 13:51:05 文章来源:www.iduyao.cn 采编人员:星星草
欢迎进入MyKTV前后台点歌系统展示

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

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

    1.MyKTV前台功能:

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

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

 

     2.MyKTV后台功能:

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

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

 

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

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

         

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

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MyKTVClient
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        //当前播放的歌曲
        private Song song;
        // 退出系统
        SqlConnection con = new SqlConnection(DBHelper.str);
        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            DBHelper.frm = this;
            // 加载时,运行播放窗体               
            // 启动计时器
            this.tim.Start();

            // 歌手照片路径   
            string sql = "select resource_path from resource_path where resource_id=1";
            SqlCommand cmd = new SqlCommand(sql, con);
            // 歌手照片路径
            con.Open();
            KTVUtil.singerPhotoPath = cmd.ExecuteScalar().ToString();
            // 歌曲路径
            sql = "select resource_path from resource_path where resource_id=2";
            cmd.CommandText = sql;
            KTVUtil.songPath = cmd.ExecuteScalar().ToString();
            con.Close();
        }
           //已点歌曲窗体
        private void tsbtnOrdered_Click(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }

        // 重新播放当前歌曲
        private void tsbtnAgain_Click(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
            PlaySong();
        }

        // 切歌
        private void tsbtnCut_Click(object sender, EventArgs e)
        {
            if (txtnextsong.Text=="")
            {
                MessageBox.Show("暂无已点歌曲");
            }
            else
            {
                PlayList.CutSong(-1);
            }
            
        }
        // 服务
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("当前无服务!");
        }
        //播放歌曲
        private void PlaySong()
        {
            this.song = PlayList.GetPlayingSong(); // 获取当前要播放的歌曲
            if (song != null)
            {
                this.song.SetSongPlayed();             // 将当前歌曲播放状态设为已播放
                this.Winplaymedia.URL = KTVUtil.songPath + "\\" + this.song.SongURL;  // 得到当前播放歌曲的路径
                string urlls = KTVUtil.singerPhotoPath +"\\"+ this.song.Singerurl;//歌手图片
                lblsongname.Text = this.song.Singername;//歌手名字
                try
                {
                    this.pblist.Image = Image.FromFile(urlls);
                }
                catch (Exception)
                {

                    MessageBox.Show("暂无歌手图片"); ;
                }
               
            }
        }
        // 定时扫描歌曲列表,显示当前播放歌曲的名称
        private void timer1_Tick(object sender, EventArgs e)
        {
            // 在文本框中显示当前播放的歌曲名字
            this.txtplay.Text = PlayList.PlayingSongName();
            this.txtnextsong.Text = PlayList.NextSongName();
            if (this.song == null)
            {
                this.PlaySong();
            }
            if (this.Winplaymedia.playState == WMPLib.WMPPlayState.wmppsStopped)
            {
                this.song = null; // 将歌曲设为空
                PlayList.MoveOn();
            }
            // 切歌
            if (this.song != null && this.song.PlayState == SongPlayState.cut)
            {
                this.Winplaymedia.URL = "";
                this.song = null;
            }       
        }
        // 按歌手点歌
        private void picSinger_Click(object sender, EventArgs e)
        {
            frmOrderBySinger frm = new frmOrderBySinger();
            frm.Show();
        }

        // 拼音点歌
        private void picSongName_Click(object sender, EventArgs e)
        {
            frmOrderBySongName frm = new frmOrderBySongName();
            frm.Show();
        }

        // 分类点歌
        private void picSongType_Click(object sender, EventArgs e)
        {
            frmOrderBySongType frm = new frmOrderBySongType();
            frm.Show();
        }

        // 排行榜点歌
        private void picSongList_Click(object sender, EventArgs e)
        {
            frmSongList frm = new frmSongList();
            string sql = "select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on song_info.singer_id=singer_info.singer_id order by song_play_count desc";
            frm.Sql = sql;
            frm.Onform = FanhuiForm.Main;
            frm.Show();
        }

        // 字数点歌
        private void picWordCount_Click(object sender, EventArgs e)
        {
            frmOrderByWordCount frm = new frmOrderByWordCount();
            frm.Show();
        }

        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            //关闭应用
            Application.Exit();
        }

        //点击窗体移动
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下 
        private void pnlTop_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlTop_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

        private void pnlTop_MouseUp(object sender, MouseEventArgs e)
        {

            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }

        private void pnlTop_Paint(object sender, PaintEventArgs e)
        {

        }
      
    }
}

     

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

      01.歌手类别

   

     02.歌手地区

    

 

     03.歌手姓名

   

  

    04.代码

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient; // ADO.NET

namespace MyKTVClient
{
    public partial class frmOrderBySinger : Form
    {
        // 当前选择的歌手性别
        private string singergender = "";
        // 当前选择的歌手类型的编号
        private int singerTypeId = 0;
        
        public frmOrderBySinger()
        {
            InitializeComponent();
        }


        // 关闭当前窗体,显示主界面
        private void tsbtnHome_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // 重新播放当前歌曲
        private void tsbtnAgain_Click(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }

        // 切歌
        private void tsbtnCut_Click(object sender, EventArgs e)
        {           
                PlayList.CutSong(-1);
           
        }

        // 打开已点歌曲窗体
        private void tsbtnOrdered_Click(object sender, EventArgs e)
        {
            frmOrderedSongList frm= new frmOrderedSongList();
            frm.Show();
        }

        // 呼叫服务
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("服务!");
        }

        // 处理返回按钮的事件
        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            if (this.pnlSingerList.Visible)
            {

                this.pnlSingerType.Visible = true;
                this.pnlSingerList.Visible = false;
            }
            else if (this.pnlSingerType.Visible)
            {
                this.pnlSingerSex.Visible = true;
                this.pnlSingerType.Visible = false;
            }
            else if (this.pnlSingerSex.Visible)
            {
                this.Close();
            }
        }
        //点击歌手的信息窗体时,弹出歌曲列表
        private void lvlistthree_Click(object sender, EventArgs e)
        {

            // 读取数据库,读出该歌手的所有歌曲
            SqlConnection con = new SqlConnection(DBHelper.str);
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info,singer_info where song_info.singer_id=singer_info.singer_id and singer_name='{0}' and song_info.singer_id={1}",
                lvlistthree.SelectedItems[0].Text, Convert.ToInt32(lvlistthree.SelectedItems[0].Tag));

            frmSongList frm = new frmSongList();
            frm.Sql = sb.ToString();


            frm.Onform = FanhuiForm.Singergender; // 指定返回的窗体是按歌手点歌
            frm.Show();
        }
        //当点击歌手类别的窗体时,弹出某歌手的信息的船体
        private void lvlisttwo_Click(object sender, EventArgs e)
        {
            // 隐藏歌手类别,显示歌手列表
            pnlSingerType.Visible = false;
            pnlSingerList.Location = pnlSingerSex.Location;
            pnlSingerList.Dock = DockStyle.Fill;
            pnlSingerList.Visible = true;
            this.singerTypeId = Convert.ToInt32(lvlisttwo.SelectedItems[0].Tag); // 保存选中的类别编号

            // 读取数据库,读出歌手信息
            SqlConnection con = new SqlConnection(DBHelper.str);
            StringBuilder sql = new StringBuilder();
            sql.AppendFormat("select singer_id,singer_name,singer_photo_url from singer_info where singertype_id={0} and singer_gender='{1}'",
                this.singerTypeId, this.singergender);

            try
            {
                SqlCommand cmd = new SqlCommand(sql.ToString(), con);
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                int imageIndex = 0; // 代表歌手头像的索引
                imglistthree.Images.Clear();

                // 循环读出歌手信息添加到窗体中显示
                lvlistthree.Items.Clear();
                while (dr.Read())
                {
                    // 将歌手头像放在ImageList控件中
                    string photoURL = KTVUtil.singerPhotoPath + "\\" + Convert.ToString(dr["singer_photo_url"]);
                    imglistthree.Images.Add(Image.FromFile(photoURL));

                    // 将歌手添加到ListView中
                    ListViewItem item = new ListViewItem();
                    item.Text = Convert.ToString(dr["singer_name"]);
                    item.Tag = Convert.ToString(dr["singer_id"]);
                    item.ImageIndex = imageIndex;
                    lvlistthree.Items.Add(item);

                    imageIndex++;
                }
                dr.Close();
            }
            catch (Exception)
            {

                MessageBox.Show("错误!");
            }
            finally
            {
                con.Close();
            } 
        }
        //当点击歌手的性别窗体时,弹出歌手的类别窗体的第一个listview
        private void lvlistone_Click(object sender, EventArgs e)
        {

            if (lvlistone.SelectedItems[0] != null)
            {
                // 隐藏歌手性别,显示歌手类别
                pnlSingerSex.Visible = false;
                pnlSingerType.Location = pnlSingerSex.Location;
                pnlSingerType.Dock = DockStyle.Fill;
                pnlSingerType.Visible = true;
                // 记录选择的性别
                this.singergender = Convert.ToString(lvlistone.SelectedItems[0].Tag); 
            }

            // 读取歌手类别
            SqlConnection con = new SqlConnection(DBHelper.str);
            string sql = "select * from singer_type";
            try
            {
                // 查询数据库
                SqlCommand command = new SqlCommand(sql, con);

                con.Open();
                SqlDataReader dr = command.ExecuteReader();

                // 循环将类别读取出来添加到ListView中
                lvlisttwo.Items.Clear();
                int i = 0;
                while (dr.Read())
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = Convert.ToString(dr["singertype_name"]);
                    item.Tag = Convert.ToInt32(dr["singertype_id"]);
                    item.ImageIndex = i;
                    lvlisttwo.Items.Add(item);
                    i++;
                }
                dr.Close();
            }
            catch (Exception)
            {

                MessageBox.Show("错误!");

            }
            finally
            {
                con.Close();
            }
        }
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下  
        private void pnlon_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlon_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

        private void pnlon_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }

      
    }
}

 

    05.歌曲列表

  

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MyKTVClient
{


    // 定义枚举,代表当前应该返回到的上一个窗体
    public enum FanhuiForm
    {
        Main, Singergender, SongType, WordCount, SongName, SongList
    }

    public partial class frmSongList : Form
    {
        private string sql = "";
        private FanhuiForm onform;  // 上一个窗体


        // 该窗体应该返回到的上一个窗体

        public FanhuiForm Onform
        {
            get { return onform; }
            set { onform = value; }
        }


        // 歌曲列表查询语句

        public string Sql
        {
            get { return sql; }
            set { sql = value; }
        }


        public frmSongList()
        {
            InitializeComponent();
        }

        // 返回
        SqlConnection con = new SqlConnection(DBHelper.str);
        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            switch (this.Onform)
            {
                // 返回到歌手点歌
                case FanhuiForm.Singergender:
                    frmOrderBySinger frm = new frmOrderBySinger();
                    frm.Show();
                    break;
                // 返回到歌曲类型点歌
                case FanhuiForm.SongType:
                    frmOrderBySongType frm1 = new frmOrderBySongType();
                    frm1.Show();
                    break;
                // 返回到字数点歌
                case FanhuiForm.WordCount:
                    frmOrderByWordCount frm2 = new frmOrderByWordCount();
                    frm2.Show();
                    break;
            }
            this.Close();
        }

        // 窗体加载时查询歌曲列表
        private void SongListForm_Load(object sender, EventArgs e)
        {

            DataSet dataSet = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(this.Sql, con);
            da.Fill(dataSet, "info");
            dgvlist.DataSource = dataSet.Tables["info"];
        }        
   
  
      
       
     
     
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("服务中");
        }
        // 点播一首歌曲
        private void dgvlist_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            // 创建一个歌曲对象,并将选中的歌曲名和路径赋给该对象
            Song song = new Song();
            song.SongName = dgvlist.SelectedRows[0].Cells["songName"].Value.ToString();
            song.SongURL = dgvlist.SelectedRows[0].Cells["songURL"].Value.ToString();
            song.Singerurl = dgvlist.SelectedRows[0].Cells["singerUrl"].Value.ToString();
            song.Singername = dgvlist.SelectedRows[0].Cells["singer"].Value.ToString();
            PlayList.AddSong(song);

            // 更新数据库,将选中的歌曲点播次数加1
            int sId = Convert.ToInt32(dgvlist.SelectedRows[0].Cells["songId"].Value);
      //string sql = "update song_info set song_play_count=song_play_count+1 where song_id="+sId+"";
            string sql = string.Format("update song_info set song_play_count=song_play_count+1 where song_id={0}", sId);
            try
            {
                SqlCommand cmd = new SqlCommand(sql, con);
                con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {

                MessageBox.Show("出错!");
            }
            finally
            {
                con.Close();
            }
        }
        //返回
        private void tsbtnExit_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
        // 切歌
        private void tsbtnCut_Click(object sender, EventArgs e)
        {
            PlayList.CutSong(-1);
        }
        // 打开已点歌曲窗体
        private void tsbtnOrdered_Click(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }
        // 重新播放当前歌曲
        private void tsbtnAgain_Click(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }
        //主界面
        private void tsbtnHome_Click(object sender, EventArgs e)
        {
            this.Close();
        }
         
        private void frmSongList_MouseDown(object sender, MouseEventArgs e)
        {
            
        }

        private void frmSongList_MouseMove(object sender, MouseEventArgs e)
        {
            
        }

        private void frmSongList_MouseUp(object sender, MouseEventArgs e)
        {
            
        }

        private void pnlTop_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下 
        private void pnlTop_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlTop_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

       

    }
}

 

  01. 播放界面

 

 

   02. 已点歌曲

 

 

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

namespace MyKTVClient
{
    public partial class frmOrderedSongList : Form
    {
        private FanhuiForm onform;  // 上一个窗体

        /// <summary>
        /// 该窗体应该返回到的上一个窗体
        /// </summary>
        public string name;
        public FanhuiForm Onform
        {
            get { return onform; }
            set { onform = value; }
        }

        public frmOrderedSongList()
        {
            InitializeComponent();
        }

        private void OrderedSongListForm_Load(object sender, EventArgs e)
        {
            this.newSonglist();
            tim.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //this.newSonglist();
        }


        //刷新歌曲列表
        private void newSonglist()
        {
            // 清空原列表
            lvlist.Items.Clear();
            int index = 0;
            while (PlayList.SongList[index] != null)
            {
                ListViewItem item = new ListViewItem();
                //获取歌曲的名称
                item.Text = PlayList.SongList[index].SongName;
                item.Tag = index;
                //歌曲的播放状态
                string playState = PlayList.SongList[index].PlayState == SongPlayState.unplayed ? "未播放" : "已播放";
                item.SubItems.Add(playState);
                lvlist.Items.Add(item);
                index++;
            }
        }

        // 返回到上一个窗体
        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            switch (this.Onform)
            {
                case FanhuiForm.Singergender:
                    frmOrderBySinger frm = new frmOrderBySinger();
                    frm.Show();
                    break;
                case FanhuiForm.SongList:
                    frmSongList frm1 = new frmSongList();
                    frm1.Show();
                    break;
                case FanhuiForm.SongName:
                    frmOrderBySongName frm2 = new frmOrderBySongName();
                    frm2.Show();
                    break;
                case FanhuiForm.SongType:
                    frmOrderBySongType frm3 = new frmOrderBySongType();
                    frm3.Show();
                    break;
                case FanhuiForm.WordCount:
                    frmOrderByWordCount frm4 = new frmOrderByWordCount();
                    frm4.Show();
                    break;
            }

            this.Close();
        }      
        // 呼叫服务     
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("服务中");
        }
        //返回
        private void tsbtnExit_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
        //已点
        private void tsbtnOrdered_Click(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }
        //切割
        private void tsbtnCut_Click_1(object sender, EventArgs e)
        {
            
                PlayList.CutSong(songId);
                this.newSonglist();
            
        }
        //重唱
        private void tsbtnAgain_Click_1(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }
        //
        private void tsbtnHome_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
        //删除选中歌曲
        int songId = -1;  // 切歌的编号
        private void lvlist_Click(object sender, EventArgs e)
        {
            

            if (this.lvlist.SelectedItems.Count > 0)
            {
                songId = Convert.ToInt32(this.lvlist.SelectedItems[0].Tag);
            }
        }

        private void lvlist_MouseDown(object sender, MouseEventArgs e)
        {

        }
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下
        private void frmOrderedSongList_MouseDown(object sender, MouseEventArgs e)
        {
           
        }

        private void frmOrderedSongList_MouseMove(object sender, MouseEventArgs e)
        {
           
        }

        private void frmOrderedSongList_Move(object sender, EventArgs e)
        {

        }

        private void frmOrderedSongList_MouseUp(object sender, MouseEventArgs e)
        {
            
        }

        private void pnlTop_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlTop_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

        private void pnlTop_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }      
        
    }

 

   3.拼音点歌

  

 

 

 代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MyKTVClient
{
    public partial class frmOrderBySongName : Form
    {
        public frmOrderBySongName()
        {
            InitializeComponent();
        }

        // 查询歌曲显示在窗体中
        SqlConnection con = new SqlConnection(DBHelper.str);
        private void btnSearch_Click(object sender, EventArgs e)
        {

            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();
            sb.Append("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on singer_info.singer_id=song_info.singer_id ");
            sb.AppendFormat("where song_name like '%{0}%' or song_ab like '{0}'", this.txtname.Text);

            Console.WriteLine(sb.ToString());

            SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);

            // 在填充之前先清空当前列表
            if (ds.Tables["info"] != null)
            {
                ds.Tables["info"].Clear();
            }
            da.Fill(ds, "info");
            this.dgvlist.DataSource = ds.Tables["info"];
        }
        private void tsbtnExit_Click(object sender, EventArgs e)
        {
           
            this.Close();
        }
   
        // 服务      
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("服务中!");
        }
        private void dgvlist_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            if (dgvlist.SelectedRows[0].Cells["songName"] != null)
            {
                // 创建一个歌曲对象,并将当权选中的歌曲名和路径赋给该对象
                Song song = new Song();
                song.SongName = dgvlist.SelectedRows[0].Cells["songName"].Value.ToString();
                song.SongURL = dgvlist.SelectedRows[0].Cells["songURL"].Value.ToString();
                song.Singerurl = dgvlist.SelectedRows[0].Cells["singerUrl"].Value.ToString();
                PlayList.AddSong(song);

                //将选中的歌曲点播次数加1
                int songId = Convert.ToInt32(dgvlist.SelectedRows[0].Cells["songId"].Value);
                string sql = string.Format("update song_info set song_play_count=song_play_count+1 where song_id={0}", songId);
                DBHelper dbHelper = new DBHelper();
                try
                {
                    SqlCommand cmd = new SqlCommand(sql,con);
                    con.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception )
                {
                  
                    MessageBox.Show("异常");
                }
                finally
                {
                    con.Close();
                }
            }
        }

        private void tsbtnExit_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

        private void tsbtnCut_Click(object sender, EventArgs e)
        {
              if (MessageBox.Show("确定要切歌吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
            {
                PlayList.CutSong(-1);
            }
        
        }

        private void tsbtnOrdered_Click_1(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }

        private void tsbtnAgain_Click_1(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }

        private void tsbtnHome_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下  
        private void pnlon_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlon_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

        private void pnlon_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }
    }
}

  

   01.点歌后的效果

    

 

   4.已点歌曲里的切歌效果

 

 

 

 

 

  代码:

  //删除选中歌曲
        int songId = -1;  // 切歌的编号
        private void lvlist_Click(object sender, EventArgs e)
        {
            

            if (this.lvlist.SelectedItems.Count > 0)
            {
                songId = Convert.ToInt32(this.lvlist.SelectedItems[0].Tag);
            }
        }


     //切歌
        private void tsbtnCut_Click_1(object sender, EventArgs e)
        {
            
                PlayList.CutSong(songId);
                this.newSonglist();
            
        }

 

   5.类型选择

   

   通过代码把图片动态加载进来

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MyKTVClient
{
    public partial class frmOrderBySongType : Form
    {
        public frmOrderBySongType()
        {
            InitializeComponent();
        }

        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // 窗体加载时,显示歌曲类别
        SqlConnection con = new SqlConnection(DBHelper.str);
        private void OrderBySongTypeForm_Load(object sender, EventArgs e)
        {
            // 读取歌曲类别         
            string sql = "select * from song_type";
            try
            {
                // 查询数据库
                SqlCommand cmd = new SqlCommand(sql, con);
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();

                // 循环将类别读取出来添加到ListView中
                this.lvlist.Items.Clear();
                int index = 0;
                while (dr.Read())
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = Convert.ToString(dr["songtype_name"]);
                    item.Tag = Convert.ToInt32(dr["songtype_id"]);
                    item.ImageIndex = index;
                    this.lvlist.Items.Add(item);
                    index++;
                }
                dr.Close();
            }
            catch (Exception)
            {

                MessageBox.Show("错误!");

            }
            finally
            {
                con.Close();
            }
        }
        
        // 呼叫服务   
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("您呼叫服务中!");
        }

        private void lvlist_Click(object sender, EventArgs e)
        {
            // 读取数据库,读出该歌手的所有歌曲

            StringBuilder sb = new StringBuilder();
            sb.Append("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url from song_info inner join singer_info on song_info.singer_id=singer_info.singer_id ");
            sb.AppendFormat("where songtype_id={0}", Convert.ToInt32(lvlist.SelectedItems[0].Tag));
            Console.WriteLine(sb.ToString());
            frmSongList frm = new frmSongList();
            frm.Sql = sb.ToString();
            frm.Onform = FanhuiForm.SongType;
            frm.Show();
           
        }
        //
        private void tsbtnExit_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
        //
        private void tsbtnOrdered_Click_1(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }
        //
        private void tsbtnCut_Click_1(object sender, EventArgs e)
        {
            PlayList.CutSong(-1);
        }
        //
        private void tsbtnAgain_Click(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }

        private void tsbtnHome_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void pnlon_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }

        private void pnlon_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下  
        private void lvlist_MouseDown(object sender, MouseEventArgs e)
        {
           
        }

        private void pnlon_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }
    }
}

 

   01.歌曲列表

  

 

  6.金榜点歌

  

 

  01.代码同为一个歌曲列表窗体

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MyKTVClient
{


    // 定义枚举,代表当前应该返回到的上一个窗体
    public enum FanhuiForm
    {
        Main, Singergender, SongType, WordCount, SongName, SongList
    }

    public partial class frmSongList : Form
    {
        private string sql = "";
        private FanhuiForm onform;  // 上一个窗体


        // 该窗体应该返回到的上一个窗体

        public FanhuiForm Onform
        {
            get { return onform; }
            set { onform = value; }
        }


        // 歌曲列表查询语句

        public string Sql
        {
            get { return sql; }
            set { sql = value; }
        }


        public frmSongList()
        {
            InitializeComponent();
        }

        // 返回
        SqlConnection con = new SqlConnection(DBHelper.str);
        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            switch (this.Onform)
            {
                // 返回到歌手点歌
                case FanhuiForm.Singergender:
                    frmOrderBySinger frm = new frmOrderBySinger();
                    frm.Show();
                    break;
                // 返回到歌曲类型点歌
                case FanhuiForm.SongType:
                    frmOrderBySongType frm1 = new frmOrderBySongType();
                    frm1.Show();
                    break;
                // 返回到字数点歌
                case FanhuiForm.WordCount:
                    frmOrderByWordCount frm2 = new frmOrderByWordCount();
                    frm2.Show();
                    break;
            }
            this.Close();
        }

        // 窗体加载时查询歌曲列表
        private void SongListForm_Load(object sender, EventArgs e)
        {

            DataSet dataSet = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(this.Sql, con);
            da.Fill(dataSet, "info");
            dgvlist.DataSource = dataSet.Tables["info"];
        }        
   
  
      
       
     
     
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("服务中");
        }
        // 点播一首歌曲
        private void dgvlist_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            // 创建一个歌曲对象,并将选中的歌曲名和路径赋给该对象
            Song song = new Song();
            song.SongName = dgvlist.SelectedRows[0].Cells["songName"].Value.ToString();
            song.SongURL = dgvlist.SelectedRows[0].Cells["songURL"].Value.ToString();
            song.Singerurl = dgvlist.SelectedRows[0].Cells["singerUrl"].Value.ToString();
            song.Singername = dgvlist.SelectedRows[0].Cells["singer"].Value.ToString();
            PlayList.AddSong(song);

            // 更新数据库,将选中的歌曲点播次数加1
            int sId = Convert.ToInt32(dgvlist.SelectedRows[0].Cells["songId"].Value);
      //string sql = "update song_info set song_play_count=song_play_count+1 where song_id="+sId+"";
            string sql = string.Format("update song_info set song_play_count=song_play_count+1 where song_id={0}", sId);
            try
            {
                SqlCommand cmd = new SqlCommand(sql, con);
                con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {

                MessageBox.Show("出错!");
            }
            finally
            {
                con.Close();
            }
        }
        //返回
        private void tsbtnExit_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
        // 切歌
        private void tsbtnCut_Click(object sender, EventArgs e)
        {
            PlayList.CutSong(-1);
        }
        // 打开已点歌曲窗体
        private void tsbtnOrdered_Click(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }
        // 重新播放当前歌曲
        private void tsbtnAgain_Click(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }
        //主界面
        private void tsbtnHome_Click(object sender, EventArgs e)
        {
            this.Close();
        }
         
        private void frmSongList_MouseDown(object sender, MouseEventArgs e)
        {
            
        }

        private void frmSongList_MouseMove(object sender, MouseEventArgs e)
        {
            
        }

        private void frmSongList_MouseUp(object sender, MouseEventArgs e)
        {
            
        }

        private void pnlTop_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }
        private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下 
        private void pnlTop_MouseDown(object sender, MouseEventArgs e)
        {
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlTop_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

       

    }
}

 

  

   7.字数点歌

  

 

    01.通过for循环把1-12的数字循环打印出来

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MyKTVClient
{
    public partial class frmOrderByWordCount : Form
    {
        public frmOrderByWordCount()
        {
            InitializeComponent();
        }

        private void tsbtnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        SqlConnection con = new SqlConnection(DBHelper.str);
        private void OrderByWordCountForm_Load(object sender, EventArgs e)
        {         
            // 将字数列表添加到窗体中            
            for (int i = 0; i < 12; i++)
            {
                // 循环生成字数项添加到窗体中
                ListViewItem item = new ListViewItem();
                item.Text = (i + 1) + "个字";
                item.Tag = i + 1;
                lvlist.Items.Add(item);
            }                      
        }           
        // 呼叫服务     
        private void tsbtnService_Click(object sender, EventArgs e)
        {
            MessageBox.Show("服务中");
        }

        private void lvlist_Click(object sender, EventArgs e)
        {
            if (lvlist.SelectedItems[0] != null)
            {
                // 读取数据库,读出该歌手的所有歌曲

                StringBuilder sb = new StringBuilder();
                sb.Append("select song_id,song_name,singer_info.singer_name,song_url,singer_info.singer_photo_url  from song_info inner join singer_info on song_info.singer_id=singer_info.singer_id ");
                sb.AppendFormat("where song_word_count={0}", Convert.ToInt32(lvlist.SelectedItems[0].Tag));
                Console.WriteLine(sb.ToString());
                frmSongList frm = new frmSongList();
                frm.Sql = sb.ToString();
                frm.Onform = FanhuiForm.WordCount;
                frm.Show();
               
            }
        }
        //
        private void tsbtnExit_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
        //
        private void tsbtnOrdered_Click_1(object sender, EventArgs e)
        {
            frmOrderedSongList frm = new frmOrderedSongList();
            frm.Show();
        }
        //
        private void tsbtnCut_Click_1(object sender, EventArgs e)
        {
               PlayList.CutSong(-1);
        
        }
        //     // 重新播放当前歌曲       
        private void tsbtnAgain_Click_1(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
        }

        private void tsbtnHome_Click(object sender, EventArgs e)
        {
            this.Close();
        }
         private Point mouseOffset;        //记录鼠标指针的坐标        
        private bool isMouseDown = false; //记录鼠标按键是否按下   
        private void pnlon_MouseDown(object sender, MouseEventArgs e)
        {
           
            int xOffset;
            int yOffset;
            if (e.Button == MouseButtons.Left)
            {
                xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
                yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
                mouseOffset = new Point(xOffset, yOffset);
                isMouseDown = true;
            }
        }

        private void pnlon_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
                Location = mousePos;
            }
        }

        private void pnlon_MouseUp(object sender, MouseEventArgs e)
        {
            // 修改鼠标状态isMouseDown的值      
            // 确保只有鼠标左键按下并移动时,才移动窗体       
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }
    }
}

   02.歌曲列表

 

 

   03.已点列表

 

 

  8.最后再看看重唱的功能展示以及代码

  

 

    01.重唱

 

 // 重新播放当前歌曲
        private void tsbtnAgain_Click(object sender, EventArgs e)
        {
            PlayList.PlayAgain();
            PlaySong();
        }

 

 

       前台算告一段落了,如果觉得对你有帮助的话,可以关注,如觉得还可以就个你的痕迹。

       

        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;

namespace KTV
{
    public partial class FrmMain : Form
    {
        public FrmMain()
        {
            InitializeComponent();
        }
        //新增
        private void tsnewadd_Click(object sender, EventArgs e)
        {
            //新增
            frmAddSinger frm = new frmAddSinger();
            frm.MdiParent = this;
            frm.Show();//以本窗体为父窗体打开
        }
        //查询歌手
        private void tssingerselect_Click(object sender, EventArgs e)
        {
            //查询歌手信息
            FrmSelectSinger frm = new FrmSelectSinger();
            frm.MdiParent = this;
            frm.Show();//以本窗体为父窗体打开
        }
        //退出
        private void tsexit_Click(object sender, EventArgs e)
        {
            //退出应用程序
            Application.Exit();
        }
        //查询歌曲
        private void tssongselect_Click(object sender, EventArgs e)
        {
        }

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

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

        private void tshelping_Click(object sender, EventArgs e)
        {
            //帮助
            MessageBox.Show("帮助规则");
        }

        private void tsAddSong_Click(object sender, EventArgs e)
        {
            //保存歌曲
            FrmAdd frm = new FrmAdd();
            frm.MdiParent = this;
            frm.Show();
        }

        private void TsSeSong_Click(object sender, EventArgs e)
        {
            //查询歌曲信息
            frmselectSong frm = new frmselectSong();
            frm.MdiParent = this;
            frm.Show();//以本窗体为父窗体打开
        }

        private void TSsonger_Click(object sender, EventArgs e)
        {
            //路径
            frmAddSongURL frm = new frmAddSongURL();
            frm.Show();
        }

    
    }
}

 

      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.IO;
using System.Data.SqlClient;

namespace KTV
{
    public partial class frmAddSinger : Form
    {
        public string uname;
        public frmAddSinger()
        {
            InitializeComponent();
        }
        //默认给原路径赋值
        public string OldLoadWays()
        {
            //测试
            SqlConnection con = new SqlConnection(DBHelp.str);
            string sql = "select resource_path from resource_path where resource_id=1";
            SqlCommand cmd = new SqlCommand(sql, con);
            string songUrl = "";
            try
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr != null)
                {
                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            songUrl = dr["resource_path"].ToString();
                        }
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("网络异常!"); ;
            }
            finally
            {
                con.Close();
            }
            return songUrl;
        }
        //下拉框
        public void Singerselect()
        {
            string str = DBHelp.str;
            //连接数据库
            SqlConnection con = new SqlConnection(str);
            string sql = "select singertype_id,singertype_name from singer_type";
            //数据集和数据库连接
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            try
            {
                da.Fill(ds);
                //绑定数据源
                DataTable dt = ds.Tables[0];
                DataRow dr = dt.NewRow();
                //给该行赋值
                dr[0] = -1;
                dr[1] = "请选择";
                dt.Rows.InsertAt(dr, 0);
                cbotype.DataSource = ds.Tables[0];
                //下拉框显示值
                cbotype.DisplayMember = "singertype_name";
                //下拉框隐藏值
                cbotype.ValueMember = "singertype_id";
            }
            catch (Exception)
            {
                MessageBox.Show("加载失败!");
            }
            finally
            {
                con.Close();
            }
        }
        private void frmAddSinger_Load(object sender, EventArgs e)
        {
            Singerselect();
            Commod.DBsongurl=OldLoadWays();
            if (this.Text=="修改歌手信息")
            {
                btnadd.Text = "修改";
                //MessageBox.Show(uname);
                Load_information();
            }
            else
            {
                this.Text = "编辑歌手信息";
                btnadd.Text = "保存";
            }
        }
        string fileName = "";
        string fullName = "";

        private void btnView_Click(object sender, EventArgs e)
        {

            //浏览
            if (this.ofdlist.ShowDialog() == DialogResult.OK)
            {

                fileName = this.ofdlist.SafeFileName; // 文件名
                fullName = this.ofdlist.FileName;
                picphoto.Image = Image.FromFile(fullName);
                txtdescrp.Text = fullName;
            }
        }
        //添加
        public void SongInfoAdd()
        { 
           string name = txtname.Text;//歌手姓名
            string type = "";//类别
            if (ramale.Checked)
            {
                type = "";
            }
            else if (rafemale.Checked)
            {
                type = "";
            }
            else if (raguoup.Checked)
            {
                type = "组合";
            }
            int id = Convert.ToInt32(cbotype.SelectedValue);//类型            
            string description = txtdescrp.Text;//描述
            SqlConnection con = new SqlConnection(DBHelp.str);
            string sql = "insert into singer_info values('" + name + "'," + id + ",'" + type + "','" + fileName + "','" + description + "')";
            SqlCommand cmd = new SqlCommand(sql,con);
            try
            {
                con.Open();
                int count = cmd.ExecuteNonQuery();
                if (count > 0)
                {
                    File.Copy(fullName, Commod.DBsongurl + "\\" + fileName, true);
                    MessageBox.Show("歌手添加成功");
                }
                else
                {
                    MessageBox.Show("歌手添加失败");
                }
            }
            catch (Exception)
            {

                MessageBox.Show("歌手加载失败"); ;
            }
            finally
            {
                con.Close();//关闭
            }
        }
        //修改
        public void SongInfoUpdate()
        { 
          
        }
        //关闭
        private void btnclose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
        private void btnadd_Click(object sender, EventArgs e)
        {
            if (this.Text=="修改歌手信息")
            {
                Update();//修改
            }
            else
            {
                SongInfoAdd();//保存功能
            }
            
        }
        //load修改
        string ch="";//单选按钮值
        int type = 0;
        public void Load_information()
        {
            

            SqlConnection con = new SqlConnection(DBHelp.str);
            string sql = "select singer_name,singer_gender,singertype_id,singer_description from singer_info where singer_name ='" + uname + "'";
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            SqlDataReader dr = cmd.ExecuteReader();
            try
            {
                if (dr != null)
                {
                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            txtname.Text = dr["singer_name"].ToString();
                            ch = dr["singer_gender"].ToString();
                            #region MyRegion判断男女,给单选按钮赋值
                            if (ch == "")
                            {
                                ramale.Checked = true;
                            }
                            else if (ch == "")
                            {
                                rafemale.Checked = true;
                            }
                            else
                            {
                                raguoup.Checked = true;
                            }
                            #endregion

                            int type = Convert.ToInt32(dr["singertype_id"]);
                            #region MyRegion 给下拉框赋值
                            if (type == 1)
                            {
                                cbotype.Text = "大陆";
                            }
                            else if (type == 2)
                            {
                                cbotype.Text = "香港";
                            }
                            else if (type == 3)
                            {
                                cbotype.Text = "台湾";
                            }
                            else if (type == 4)
                            {
                                cbotype.Text = "欧美";
                            }
                            else if (type == 5)
                            {
                                cbotype.Text = "日韩";
                            }
                            #endregion

                            txtdescrp.Text = dr["singer_description"].ToString();                            
                        }
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("歌手个别信息不完善!!!");
            }
            finally
            {
                con.Close();
            }
        }
        //修改
        public void Update()
        {
            int songid = Convert.ToInt32(cbotype.SelectedValue);
            int num = txtname.Text.Length;
            SqlConnection con = new SqlConnection(DBHelp.str);
            //singer_id, singer_name, singertype_id, singer_gender, singer_photo_url, singer_description
            string sql = @"update singer_info set singer_name='" + txtname.Text + "',singer_gender='" + ch + "',singer_photo_url='" + fileName +
                         "',singertype_id=" + type + ",singer_description='"+txtdescrp.Text+"' where singer_name ='" + uname + "'";
            SqlCommand cmd = new SqlCommand(sql, con);
            try
            {
                con.Open();
                int count = cmd.ExecuteNonQuery();
                if (count > 0)
                {
                    MessageBox.Show("修改成功");
                }
            }
            catch (Exception)
            {

                MessageBox.Show("加载失败"); ;
            }
            finally
            {
                con.Close();
            }
        }
    }
}

 

        由于一些问题暂不能帮你们把KTV项目完全展示, 不过后台会很快补回来的,如果想多了解点知识,就多多的来学习吧!博客园都在等你们啊。。。。。。

 

4楼CamelOnTheWay
这贴代码和贴图太多了,page down了N次都没到底。。。
3楼WhyShang
别的不说,SQL一定要参数化!!! 工作后还这样写,会被骂死的
2楼jerry_0824
~感谢分享~
1楼cocosip
这项目都快被写烂了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: