• 2015年中项目总结下


    继上次的前台内容今天我们来讲一讲后台的一些事儿吧!后台呢主要是对前台的歌手、歌曲信息及图片、歌曲路径的一些~嗯~算是配置吧! 还是先看效果图

    后台效果图

    登录界面

    image

    主界面

     

    image

    添加歌手

    image

    该窗体填写歌手信息并选择图片后会将歌手的信息保存在数据库并且将选中的图片复制到数据库中存放歌手图像的制定路径中!

    查询歌手

    image

    查询窗体中可以对歌手的信息进行修改和删除,修改歌手和添加歌手共用一个窗体

    添加歌曲

    image

    添加个曲中点击浏览按钮选择歌曲后会自动加载歌曲的名字拼音缩写,点击选择按钮打开查询歌手窗体选择歌手点击保存按钮效果和添加歌手窗体中的保存按钮差不多

    查询歌曲信息

    image

    修改歌曲信息和添加歌曲共用一个窗体

    设置路径

    image

    设置歌手图片路径和设置歌曲路径共用一个窗体

    后台技术实现

    同一窗体实现多种功能

    以添加歌手窗体为例该功能分两步实现

    1.定义一个公有的静态变量或枚举用来标示不同的功能

    2.在窗体的load事件和保存按钮的Click事件中对枚举或公有变量进行判定

    //加载信息(load事件)
     private void addsinger_Load(object sender, EventArgs e)
            {
                getdb();//添加歌手
               
                if (id!="")
                {   
                    detinfo();//修改歌手
                    this.Text = "修改歌手信息";
                }
            }
    //保存信息(保存按钮的Click事件)
     private void btnOk_Click(object sender, EventArgs e)
            {
                //判断信息是否完整
                if (txtinfo.Text!=""&&txtname.Text!=""&&cmblist.Text!=""&&(rb0.Checked==true ||tb1.Checked==true||rb2.Checked==true)&&openFileDialog1.FileName!="")
                {
                    //项数据库添加或修改数据
                    if (id=="")
                    {
                         insertdb();//添加
                    }
                    else
                    {
                        update();//修改
                    }
                }
                else
                {
                    MessageBox.Show("请完善信息");
                }
            }

    在添加歌曲窗体中打开查询歌手信息窗体选择歌手

    1.在添加歌曲窗体中定义一个公用的静态变量(Singername)用来保存歌手名字

    2.在用户选择一个歌手后给添加歌曲窗体中的静态变量(Singername)赋值

    {
      string name = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取选中歌手的名称
                   insertsong.Singername = name;//给添加歌手窗体中的Singername变量赋值
                    this.Close();
    }

    3.在查询歌手窗体关闭后将Singername中的只赋给文本框

    {
     selectsinger frm = new selectsinger();       
                frm.ShowDialog();//打开查询歌手窗体
               txtsingername.Text=Singerrname;给文本框赋值
    }

    关于供用户选择文件的openFileDialog控件

    控件的常用属性:

              属                   性                           说                                                  明
      FileName 用户选择文件的完整路径
    Filter 在选择对话框中加入筛选条件(对话框只显示符合条件格式的文件)
    ShowDialog 打开对话框
    SafeFileName 用户选择文件的名称(带扩展名)

    控件的常用事件:

              事                    件                           说                                                  明
    FileOK 在用户点击“打开”或“保存”按钮式发生
    HelpRequest 在用户点击“帮助”按钮时发生

    关于供用户选择文件夹的FolderBrowserDialog控件

    控件的常用属性:

              属                   性                           说                                                  明
    SelectedPath 用户选择的文件夹的路径
    ShowNewFolderButton 是否在对话框中显示“新建文件夹”按钮

    关于File类

    该类提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 System.IO.FileStream 对象。

    Copy()方法:

    // 摘要:
           //     将现有文件复制到新文件。 允许覆盖同名的文件。
           // 参数:
           //   sourceFileName:
           //     要复制的文件。
           //   destFileName:
           //     目标文件的名称。 它不能是一个目录或现有文件

        //   overwrite:
       //     如果可以覆盖目标文件,则为 true;否则为 false。

    Create()方法:

    // 摘要:
    //     创建或覆盖具有指定的缓冲区大小、文件选项和文件安全性的指定文件。
    // 参数:
    //   path:
    //     文件的名称。
    //   bufferSize:
    //     用于读取和写入文件的已放入缓冲区的字节数。
    //   options:
    //     System.IO.FileOptions 值之一,它描述如何创建或覆盖该文件。
    //   fileSecurity:
    //     System.Security.AccessControl.FileSecurity 值之一,它确定文件的访问控制和审核安全性。
    // 返回结果:
    //     具有指定的缓冲区大小、文件选项和文件安全性的新文件。

    Delete()方法:

    // 摘要:
    //     删除指定的文件。
    // 参数:
    //   path:
    //     要删除的文件的名称。 该指令不支持通配符。

    Exists()方法:

    // 摘要:
           //     确定指定的文件是否存在。
           //
           // 参数:
           //   path:
           //     要检查的文件

    关于Directory类

    Delete()方法:

    // 摘要:
    //     删除指定的目录并(如果指示)删除该目录中的所有子目录和文件。
    // 参数:
    //   path:
    //     要移除的目录的名称。
    //   recursive:
    //     若要移除 path 中的目录、子目录和文件,则为 true;否则为 false。

    Exists()方法:

    // 摘要:
    //     确定给定路径是否引用磁盘上的现有目录。
    // 参数:
    //   path:
    //     要测试的路径。
    // 返回结果:
    //     如果 path 引用现有目录,则为 true;否则为 false。

    Move()方法:

    // 摘要:
    //     将文件或目录及其内容移到新位置。
    // 参数:
    //   sourceDirName:
    //     要移动的文件或目录的路径。
    //   destDirName:
    //     指向 sourceDirName 的新位置的路径。 如果 sourceDirName 是一个文件,则 destDirName 也必须是一个文件名。

  • 相关阅读:
    拓扑排序,bitset~[JSOI2015]最小表示
    字符串算法~KMP
    校内团队训练赛2
    校内团队训练赛
    CodeForces
    莫队算法基础与练习
    lintcode-452-删除链表中的元素
    lintcode-451-两两交换链表中的节点
    lintcode-450-K组翻转链表
    lintcode-445-余弦相似度
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5099294.html
Copyright © 2020-2023  润新知