一个项目,一分收获;一个项目,一些资源。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(-);
} }
// 服务
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 + , mouseOffset.Y + );
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 = ; 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(-); } // 打开已点歌曲窗体
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[].Text, Convert.ToInt32(lvlistthree.SelectedItems[].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[].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 = ; // 代表歌手头像的索引
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[] != null)
{
// 隐藏歌手性别,显示歌手类别
pnlSingerSex.Visible = false;
pnlSingerType.Location = pnlSingerSex.Location;
pnlSingerType.Dock = DockStyle.Fill;
pnlSingerType.Visible = true;
// 记录选择的性别
this.singergender = Convert.ToString(lvlistone.SelectedItems[].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 = ;
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 + , mouseOffset.Y + );
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[].Cells["songName"].Value.ToString();
song.SongURL = dgvlist.SelectedRows[].Cells["songURL"].Value.ToString();
song.Singerurl = dgvlist.SelectedRows[].Cells["singerUrl"].Value.ToString();
song.Singername = dgvlist.SelectedRows[].Cells["singer"].Value.ToString();
PlayList.AddSong(song); // 更新数据库,将选中的歌曲点播次数加1
int sId = Convert.ToInt32(dgvlist.SelectedRows[].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(-);
}
// 打开已点歌曲窗体
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 + , mouseOffset.Y + );
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 = ;
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 = -; // 切歌的编号
private void lvlist_Click(object sender, EventArgs e)
{ if (this.lvlist.SelectedItems.Count > )
{
songId = Convert.ToInt32(this.lvlist.SelectedItems[].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 + , mouseOffset.Y + );
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[].Cells["songName"] != null)
{
// 创建一个歌曲对象,并将当权选中的歌曲名和路径赋给该对象
Song song = new Song();
song.SongName = dgvlist.SelectedRows[].Cells["songName"].Value.ToString();
song.SongURL = dgvlist.SelectedRows[].Cells["songURL"].Value.ToString();
song.Singerurl = dgvlist.SelectedRows[].Cells["singerUrl"].Value.ToString();
PlayList.AddSong(song); //将选中的歌曲点播次数加1
int songId = Convert.ToInt32(dgvlist.SelectedRows[].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(-);
} } 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 + , mouseOffset.Y + );
Location = mousePos;
}
} private void pnlon_MouseUp(object sender, MouseEventArgs e)
{
// 修改鼠标状态isMouseDown的值
// 确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
}
}

01.点歌后的效果

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

代码:

  //删除选中歌曲
int songId = -; // 切歌的编号
private void lvlist_Click(object sender, EventArgs e)
{ if (this.lvlist.SelectedItems.Count > )
{
songId = Convert.ToInt32(this.lvlist.SelectedItems[].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 = ;
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[].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(-);
}
//
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 + , mouseOffset.Y + );
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[].Cells["songName"].Value.ToString();
song.SongURL = dgvlist.SelectedRows[].Cells["songURL"].Value.ToString();
song.Singerurl = dgvlist.SelectedRows[].Cells["singerUrl"].Value.ToString();
song.Singername = dgvlist.SelectedRows[].Cells["singer"].Value.ToString();
PlayList.AddSong(song); // 更新数据库,将选中的歌曲点播次数加1
int sId = Convert.ToInt32(dgvlist.SelectedRows[].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(-);
}
// 打开已点歌曲窗体
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 + , mouseOffset.Y + );
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 = ; i < ; i++)
{
// 循环生成字数项添加到窗体中
ListViewItem item = new ListViewItem();
item.Text = (i + ) + "个字";
item.Tag = i + ;
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[] != 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[].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(-); }
// // 重新播放当前歌曲
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 + , mouseOffset.Y + );
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[];
DataRow dr = dt.NewRow();
//给该行赋值
dr[] = -;
dr[] = "请选择";
dt.Rows.InsertAt(dr, );
cbotype.DataSource = ds.Tables[];
//下拉框显示值
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 > )
{
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 = ;
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 == )
{
cbotype.Text = "大陆";
}
else if (type == )
{
cbotype.Text = "香港";
}
else if (type == )
{
cbotype.Text = "台湾";
}
else if (type == )
{
cbotype.Text = "欧美";
}
else if (type == )
{
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 > )
{
MessageBox.Show("修改成功");
}
}
catch (Exception)
{ MessageBox.Show("加载失败"); ;
}
finally
{
con.Close();
}
}
}
}

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

欢迎进入MyKTV前后台点歌系统展示的更多相关文章

  1. 欢迎进入MyKTV点歌系统展示

    一个项目,一分收获:一个项目,一些资源.Ktv项目也是一样的,所以我想分享我的收获,让你们获得你需要的资源. 一. 那MyKTV点歌系统具体的功能有哪些呢?我们就来看看吧! 1.MyKTV前台功能: ...

  2. KTV点歌系统

    经过十多天的艰苦奋战,MyKTV点歌系统终于成型,从刚开始接到项目的茫然,到完成项目时的喜悦,整个过程的艰辛和付出只有自己知道.虽然这个项目还有许多需要完善的地方,譬如添加歌词信息,实现窗体的美化等, ...

  3. JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统

    前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...

  4. KTV点歌系统播放原理

    北大青鸟KTV点歌系统播放原理 指导老师--原玉明 1.首先知道有两个类(PlayList   Song) PlayList类中有一方法 public static bool AddSong(Song ...

  5. java——集合、泛型、ArrayList、LinkedList、foreach循环、模拟ktv点歌系统

    集合:一系列特殊的类,这些类可以存储任意类型的对象,长度可变,集合类都在java.util包中. 但是集合记不住对象的类型,当把对象从集合中取出时这个对象的编译类型就变成了Object类型.这样在取元 ...

  6. 使用Egg改造订单系统展示效果,方便快速浏览

    素材准备: 1.Egg.js Born to build better enterprise frameworks and apps with Node.js & Koa 为企业级框架和应用而 ...

  7. 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简前后台ajax表格展示及分页(二)前端修改、添加表格行点击弹出模态框

    在前一篇中,由于不懂jquery,前端做的太差了,今天做稍做修改,增加一个跳转到指定页面功能,表格行点击样式变化.并且在表格中加入bootstarp的按钮组,按钮点击后弹出模态框,须修改common, ...

  8. 从头开始一步一步实现EF6+Autofac+MVC5+Bootstarp极简的实现前后台ajax表格展示及分页实现

    本来是想试着做一个简单OA项目玩玩的,真是不做不知道,一做吓死人,原来以为很简单的事情,但是做起来不是忘这就是忘那的,有的技术还得重新温习.所以还是得记录.免得哪天电脑挂了,就全没有了. 开始是看了园 ...

  9. Q:解决每天第一次打开MSCRM系统展示慢的问题

    问题:第天第一次打开系统时,需要加载很长时间,基本为1分多钟,而第二次打开只需5秒. 解决方案:利用IIS中的Session. 一.打开IIS,选择打开服务器功能中“Session State”. 二 ...

随机推荐

  1. swift 3.0 协议笔记

    协议能够要求遵循者必须含有一些特定名称和类型的实例属性(instance property)或类属性(type property),也能够要求属性的(设置权限)settable 和(访问权限)gett ...

  2. 把包发布到npm官网

    一.包 包就是多模块的集合,CommonJS的包规范给程序员提供了组织模块的标准,减少沟通成本. 规范: 所有的模块放在demo文件夹下(包名)的lib文件夹里面 在lib文件夹的同级目录下新建ind ...

  3. WPF 动画显示控件

    当我们要显示一个控件的时候,不仅仅要显示这个控件,还要有动画的效果. 主要用到了DoubleAnimation类. public static void ShowAnimation(object co ...

  4. Power BI for Office 365 概览

    伴随着数据量的日益增长,通过自服务式的商业智能把数据转换成辅助决策支持的工具,越来越成为迫切的需求.在以前,处理这些数据往往只是IT人员范围内的事,但是通过Power BI for Office 36 ...

  5. 安装Python环境时遇到的问题

    问题描述:An error occurred during the installation of assembly 'Microsoft.VC90.MFC,version="9.0.210 ...

  6. mysql中ip和整数的转换

    INET_ATON(expr) 给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数.地址可以是4或8比特地址. mysql> SELECT INET_ATON('209.20 ...

  7. fat32转ntfs

    convert c: /fs:ntfs 下了个维基的zim,7G,fat32放不下 :( Microsoft Windows [版本 6.1.7600] 版权所有 (c) 2009 Microsoft ...

  8. html学习第三天—— 第11章 盒子模型 div

    盒模型--边框(一) 盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细.样式和颜色(边框三个属性). 如下面代码为div来设置边框粗细为2px.样式为实心的.颜色为红色的边框: div ...

  9. TAQSkinScrollBar 类美化滚动条再讨论

    再说:TAQSkinScrollBar 类美化滚动条,http://www.138soft.com/?p=156  里面有人提到不可以滚动 滚动的改善方法: unit AQSkinScrollBar; ...

  10. PB12.5.2安装

    一.从12.5升级到12.5.2_build5550安装步骤: 1.安装VS2010及SP1 2.安装12.50(可以只装PB)DV68538-65-1250-01.zip 3.安装EBF20963 ...