快捷方式管理程序(网吧游戏菜单) SQLite本地数据库

使用Visual C# WinForm开发了一个快捷方式管理程序,适用于网吧游戏菜单。程序利用SQLite本地数据库存储快捷方式信息,包含运行、管理员权限运行、添加、删除、重命名和刷新等功能。在ListView控件中展示快捷方式,支持鼠标双击和右键菜单操作。
摘要由CSDN通过智能技术生成
  • 开发环境

Microsoft Visual Studio 2017

  • 开发语言

Visual C# WinForm

  • 开发过程
  1. 新建一个Windows窗体应用(.Net Framework),将名称栏改为LinksMgrSystem,点确定生成解决方案。
  2. 在解决方案资源管理器里将Form1更改为FormMain。双击打开FormMain.cs,在窗体上拖入控件TabControl命名LinkTabControl,为LinkTabControl的TabPages属性添加TabPage1TabPage2,在TabPage1中拖入ListView命名ListViewApp,在TabPage2中拖入ListView命名ListViewGame,拖入控件ImageList命名AppImage,拖入控件ContentMenuStrip命名RightButtonMenu并对控件进行布局排列。对FormMain添加事件Load。
  3. ListViewApp和ListViewGame属性设置:ContentMenuStrip为RightButtonMenu,LargeImageList为AppImge,MultiSelect为False,Sorting为Ascending,View为LargeIcon。对ListViewApp和ListViewGame添加事件SelectedIndexChanged、KeyDown、MouseDoubleClick、AfterLabelEdit。
  4. AppImage属性设置:ColorDepth为Depth32Bit,ImageSize为32,32,TransparentColor为Transparent
  5. RightButtonMenu加入Item:运行程序(&R)、以管理员身份运行(&M)、新增快捷方式(&A)、删除快捷方式(&D)、重命名快捷方式(&N)、刷新快捷方式(&U)、清空快捷方式(&C)
  6. 在解决方案里项目上右键添加LinksMgr.cs类(用来实现RightButtonMenu的Item功能)。在项目上右键选择“管理NuGet程序包”在“浏览”里搜索“SQLite”,安装“System.Data.SQLite”,在引用上右键选择添加引用,将“System.Drawing”添加到引用,在LinksMgr.cs里添加如下代码:
using System;
using System.Data;
using System.Data.SQLite;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Security.Principal;
using System.Windows.Forms;

namespace LinksMgrSystem
{
    public class SQLiteHelper
    {
        /// <summary>
        /// 执行表的增、删、改操作
        /// </summary>
        /// <param name="connection">数据库连接字符串</param>
        /// <param name="sql">查询语句</param>
        /// <returns>受影响的行数</returns>
        public static int UpdateData(string connection, string sql)
        {
            SQLiteConnection conn = new SQLiteConnection(connection);
            using (SQLiteCommand cmd = new SQLiteCommand(sql, conn))
            {
                try
                {
                    conn.Open();
                    return cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    conn.Close();
                }
            }
        }

        /// <summary>
        /// 执行结果集中的第一个数据的查询
        /// </summary>
        /// <param name="connection">数据库连接字符串</param>
        /// <param name="sql">查询语句</param>
        /// <returns>受影响的结果集中的第一个数据</returns>
        public static object GetExecuteScalar(string connection, string sql)
        {
            SQLiteConnection conn = new SQLiteConnection(connection);
            using (SQLiteCommand cmd = new SQLiteCommand(sql, conn))
            {
                try
                {
                    conn.Open();
                    return cmd.ExecuteScalar();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    conn.Close();
                }
            }
        }

        /// <summary>
        /// 执行结果集中的所有数据的查询
        /// </summary>
        /// <param name="connection">数据库连接字符串</param>
        /// <param name="sql">查询语句</param>
        /// <returns>受影响的结果集中的所有数据</returns>
        public static SQLiteDataReader GetExecuteReader(string connection, string sql)
        {
            SQLiteConnection conn = new SQLiteConnection(connection);
            using (SQLiteCommand cmd = new SQLiteCommand(sql, conn))
            {
                try
                {
                    conn.Open();
                    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
                catch (Exception ex)
                {
                    conn.Close();
                    throw ex;
                }
            }
        }

        /// <summary>
        /// 验证数据文件是否存在
        /// </summary>
        /// <returns>存在与否</returns>
        private static bool FileExists()
        {
            if (File.Exists(Application.StartupPath + "\\Links.db"))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 数据文件不存在时创建
        /// </summary>
        private static bool CreateDBFile()
        {
            if (!FileExists())
            {
                try
                {
                    SQLiteConnection.CreateFile(Application.StartupPath + "\\Links.db");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 在数据文件中创建表
        /// </summary>
        public static void CreateTable()
        {
            if (CreateDBFile())
            {
                SQLiteConnection conn = new SQLiteConnection("data source = .\\Links.db");
                conn.Open();
                using (SQLiteCommand cmd = new SQLiteCommand("select * from sqlite_master where type='table' and name='AppsList'", conn))
                {
                    SQLiteDataReader reader = cmd.ExecuteReader();
                    if (!reader.HasRows)
                    {
                        try
                        {
                            using (SQLiteCommand command = new SQLiteCommand("create table AppsList(AppName NVARCHAR, AppPath NVARCHAR, AppIcon IMAGE, IsGame BOOL, ListNumber INT)", conn))
                            {
                                command.ExecuteNonQuery();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        reader.Close();
                    }
                }
                conn.Close();
            }
        }
    }

    public class LinksMgr
    {
        /// <summary>
        /// 程序名称
        /// </summary>
        private string AppName { get; set; }
        /// <summary>
        /// 程序路径
        /// </summary>
        private string AppPath { get; set; }
        /// <summary>
        /// 附带参数
        /// </summary>
        private string A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值