通过添加按钮打开文件选取歌曲,并且添加到列表中(listbox)并保存在数据库中
2014-05-14 22:28
344 查看
在项目下定义一个类用于对数据库的操作:
using System.Data;
using System.Data.OleDb;
class DBClass
{
OleDbConnection cnn = null;
bool OpenDB() //打开数据库的方法
{
cnn = new OleDbConnection();
string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "\\DB\\MP3qq.mdb";
cnn.ConnectionString = str; //连接数据库
cnn.Open(); //执行打开数据库的动作
if (cnn.State == ConnectionState.Open) //判断数据库的状态是否为打开状态 如果打开则为真,否则为假
{
return true;
}
else
{
return false;
}
}
public bool InsertSongs(string sql) //增加歌曲到数据库中 执行Command的对象
{
OpenDB();
OleDbCommand olecmd = new OleDbCommand();
olecmd.Connection = cnn;
olecmd.CommandText = sql;
if (Convert.ToInt32(olecmd.ExecuteNonQuery()) > 0)
{
return true;
}
else
{
return false;
}
}
public DataSet ExcuteQuery(String sql) //这个方法实现的是程序一开始运行在列表框中就显示要查询的歌曲
{
OpenDB();
OleDbDataAdapter sda = new OleDbDataAdapter(sql,cnn); //sql是传递的参数,就是查询的SQL语句,cnn是与数据库连接
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
public bool InsertSongs(string sql) //插入歌曲的方法
{
OpenDB(); //先打开数据库
OleDbCommand olecmd = new OleDbCommand(); //利用OleDbCommand的实例,执行插入的动作
olecmd.Connection = cnn; // 与数据库连接
olecmd.CommandText = sql; //传参数
if (Convert.ToInt32(olecmd.ExecuteNonQuery()) > 0) //判断是否成功插入到数据库中 ExecuteNonQuery()这个方法的返回值是所受影响的行数
{
return true;
}
else
{
return false;
}
}
public bool DeleteSongs(string sql) //删除歌曲的方法
{
OpenDB();
OleDbCommand olecmd = new OleDbCommand();
olecmd.Connection = cnn;
olecmd.CommandText = sql;
if (Convert.ToInt32(olecmd.ExecuteNonQuery()) > 0)
{
return true;
}
else
{
return false;
}
}
}
在按钮添加事件中
DBClass db = new DBClass(); //实例化类
private void btnA_Click(object sender, EventArgs e) //添加歌曲的按钮 事件
{ string sql1=""; //这的代码是为了点击按钮打开文件对话框并且选择歌曲拓展名为.MP3的歌曲,并且添加到列表框中,但是数据库中也随之插入歌曲
if (openFDsongs.ShowDialog() == DialogResult.OK) //判断文件对话框
{
int i;
for(i=0;i<openFDsongs.FileNames.Length;i++) //循环从文件中添加歌曲
{
sql1 = "insert into Table_MP3(MP3_Name,MP3_Route)values('','" + openFDsongs.FileNames[i].ToString() + "')"; //SQL语句 向表中插入歌曲
db.InsertSongs(sql1); //调用插入歌曲的方法 将实际参数sql1传递给形参
lstSongs.Items.Add(openFDsongs.FileNames[i].ToString()); //在列表框中添加歌曲
}
}
}
private void button2_Click(object sender, EventArgs e) //删除歌曲的按钮
{
string sql = "";
sql = "delete from Table_Mp3 where MP3_Route='"+lstSongs.Text+"'"; //SQL中的删除语句
db.DeleteSongs(sql); //删除数据库中的值得方法
lstSongs.Items.Remove(lstSongs.Text); //将列表框中的值移除
//红色的字体是在列表框中选择多个歌曲并且删除,在数据库中也删除选中的歌曲
for (int i = 0; i < lstSongs.SelectedItems.Count; i++)
{
db.DeleteSongs("delete from Table_Mp3 where MP3_Route ='" + lstSongs.SelectedItems[i].ToString() + "'");
}
for (int i = lstSongs.Items.Count - 1; i > -1; i--)
{
if (lstSongs.GetSelected(i))
// GetSelected(i) 获得选中的状态
{
lstSongs.Items.RemoveAt(i); //循环遍历需要用倒序, 不然删除选项后, index会变化, 造成后删除的序号错误。
}
}
}
private void From_Load(object sender, EventArgs e) //窗体加载事件 执行的是查询的方法 程序运行时就显示已经添加的歌曲
{
string sql = "SELECT MP3_Route from Table_MP3"; //定义一个查询的语句
DataSet dss = db.ExcuteQuery(sql); //把实参传递给形参 把SQL语句传递到ExcuteQuery这个方法中将其注入到数据集(DataSet)中,
for (int i = 0; i < dss.Tables[0].Rows.Count; i++) //循环表中行的个数
{
lstSongs.Items.Add(dss.Tables[0].Rows[i][0].ToString()); //表里面的第i行第0列的值转化成字符串添加到列表中
}
}
using System.Data;
using System.Data.OleDb;
class DBClass
{
OleDbConnection cnn = null;
bool OpenDB() //打开数据库的方法
{
cnn = new OleDbConnection();
string str = "provider=Microsoft.Jet.OleDb.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "\\DB\\MP3qq.mdb";
cnn.ConnectionString = str; //连接数据库
cnn.Open(); //执行打开数据库的动作
if (cnn.State == ConnectionState.Open) //判断数据库的状态是否为打开状态 如果打开则为真,否则为假
{
return true;
}
else
{
return false;
}
}
public bool InsertSongs(string sql) //增加歌曲到数据库中 执行Command的对象
{
OpenDB();
OleDbCommand olecmd = new OleDbCommand();
olecmd.Connection = cnn;
olecmd.CommandText = sql;
if (Convert.ToInt32(olecmd.ExecuteNonQuery()) > 0)
{
return true;
}
else
{
return false;
}
}
public DataSet ExcuteQuery(String sql) //这个方法实现的是程序一开始运行在列表框中就显示要查询的歌曲
{
OpenDB();
OleDbDataAdapter sda = new OleDbDataAdapter(sql,cnn); //sql是传递的参数,就是查询的SQL语句,cnn是与数据库连接
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
public bool InsertSongs(string sql) //插入歌曲的方法
{
OpenDB(); //先打开数据库
OleDbCommand olecmd = new OleDbCommand(); //利用OleDbCommand的实例,执行插入的动作
olecmd.Connection = cnn; // 与数据库连接
olecmd.CommandText = sql; //传参数
if (Convert.ToInt32(olecmd.ExecuteNonQuery()) > 0) //判断是否成功插入到数据库中 ExecuteNonQuery()这个方法的返回值是所受影响的行数
{
return true;
}
else
{
return false;
}
}
public bool DeleteSongs(string sql) //删除歌曲的方法
{
OpenDB();
OleDbCommand olecmd = new OleDbCommand();
olecmd.Connection = cnn;
olecmd.CommandText = sql;
if (Convert.ToInt32(olecmd.ExecuteNonQuery()) > 0)
{
return true;
}
else
{
return false;
}
}
}
在按钮添加事件中
DBClass db = new DBClass(); //实例化类
private void btnA_Click(object sender, EventArgs e) //添加歌曲的按钮 事件
{ string sql1=""; //这的代码是为了点击按钮打开文件对话框并且选择歌曲拓展名为.MP3的歌曲,并且添加到列表框中,但是数据库中也随之插入歌曲
if (openFDsongs.ShowDialog() == DialogResult.OK) //判断文件对话框
{
int i;
for(i=0;i<openFDsongs.FileNames.Length;i++) //循环从文件中添加歌曲
{
sql1 = "insert into Table_MP3(MP3_Name,MP3_Route)values('','" + openFDsongs.FileNames[i].ToString() + "')"; //SQL语句 向表中插入歌曲
db.InsertSongs(sql1); //调用插入歌曲的方法 将实际参数sql1传递给形参
lstSongs.Items.Add(openFDsongs.FileNames[i].ToString()); //在列表框中添加歌曲
}
}
}
private void button2_Click(object sender, EventArgs e) //删除歌曲的按钮
{
string sql = "";
sql = "delete from Table_Mp3 where MP3_Route='"+lstSongs.Text+"'"; //SQL中的删除语句
db.DeleteSongs(sql); //删除数据库中的值得方法
lstSongs.Items.Remove(lstSongs.Text); //将列表框中的值移除
//红色的字体是在列表框中选择多个歌曲并且删除,在数据库中也删除选中的歌曲
for (int i = 0; i < lstSongs.SelectedItems.Count; i++)
{
db.DeleteSongs("delete from Table_Mp3 where MP3_Route ='" + lstSongs.SelectedItems[i].ToString() + "'");
}
for (int i = lstSongs.Items.Count - 1; i > -1; i--)
{
if (lstSongs.GetSelected(i))
// GetSelected(i) 获得选中的状态
{
lstSongs.Items.RemoveAt(i); //循环遍历需要用倒序, 不然删除选项后, index会变化, 造成后删除的序号错误。
}
}
}
private void From_Load(object sender, EventArgs e) //窗体加载事件 执行的是查询的方法 程序运行时就显示已经添加的歌曲
{
string sql = "SELECT MP3_Route from Table_MP3"; //定义一个查询的语句
DataSet dss = db.ExcuteQuery(sql); //把实参传递给形参 把SQL语句传递到ExcuteQuery这个方法中将其注入到数据集(DataSet)中,
for (int i = 0; i < dss.Tables[0].Rows.Count; i++) //循环表中行的个数
{
lstSongs.Items.Add(dss.Tables[0].Rows[i][0].ToString()); //表里面的第i行第0列的值转化成字符串添加到列表中
}
}
相关文章推荐
- 带有文件域和下拉列表的表单无法通过按钮提交到servlet
- 打开对话框同时选择多个文件+往ListBox添加项
- 将文件添加到数据库中(二进制保存数据)
- C语言把内存的文件保存到硬盘时如何把文件名由用户通过屏幕自己设置,并且保存到指定的路径
- 注册表添加和删除文件打开方式列表
- 点滴积累【C#】---C#实现上传word将路径保存到数据库,文件保存到服务器。并且按照名称读取服务器的word
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- 播放器03:以文件夹的形式添加整个文件夹里面的文件到播放列表,播放刚加进来的第一首歌曲,默认顺序播放
- Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮
- vs.net中打开数据库中的文件(保存/下载)
- 如何重新找到在Windows Live Mail 中直接打开修改保存并且不小心关闭的文件
- 给数据库字段添加注释,并且可以通过sql语句查询
- PHP实现点击a标签的href做链接时,直接保存文件(任何类型),而不是通过浏览器直接打开下载的文件
- 如何保证在浏览器端打开文件(word格式),保存时仍能够进入原数据库!
- 给数据库字段添加注释,并且可以通过sql语句查询
- 将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置
- 通过注册表在文件的右键菜单添加程序快速打开
- VC6.0中无法使用打开按钮,无法添加已有的文件
- Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮
- 文件操作:打开单个、多个文件,另存文件,选取文件保存路径等