您的位置:首页 > 数据库

通过添加按钮打开文件选取歌曲,并且添加到列表中(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列的值转化成字符串添加到列表中

            }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐