• QT 数据库编程一


    QT如果要进行网络编程首先需要在.pro中添加如下代码:QT += network

    //logindlg.h
    #ifndef LOGINDLG_H
    #define LOGINDLG_H
    
    #include <QDialog>
    #include <QLabel>
    #include <QLineEdit>
    #include <QPushButton>
    
    class loginDlg : public QDialog
    {
        Q_OBJECT
    public:
        explicit loginDlg(QWidget *parent = 0);
    
    signals:
    
    public slots:
    
    private:
        QLabel *label1,*label2,*label3,*label4;
        QLineEdit *edit1,*edit2,*edit3,*edit4;
        QPushButton *btn1,*btn2;
    private slots:
        void btn1_click();
        void btn2_click();
    public:
        QString username;
        QString userpass;
        QString dbname;
        QString ipaddr;
        /*判断用户是否点击登录按钮*/
        bool islogin;
    
    };
    
    #endif // LOGINDLG_H
    //mainwindow.h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QMenu>
    /*QMenuBar:菜单栏*/
    #include <QMenuBar>
    #include <QAction>
    #include <QCloseEvent>
    #include <QMdiArea>
    
    #include "vmysql.h"
    
    
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
    private:
        Vmysql *sqlhelper;
        QMenu * menu1;
        QMenu * menu2;
        QMenu * menu3;
        QMenu * menu4;
        QAction *login_in,*login_out,*quit1;
        QAction *addstation,*addstationcontrl,*addMSC;
        QAction *delstation,*delstationcontrl,*delMSC;
        QAction *sestation,*sestationcontrl,*seMSC;
        QAction *upstation,*upstationcontrl,*upMSC,*exscript;
        QAction *cascade1,*parallel;
        QAction *helper,*mabout;
        QMdiArea *mdiarea1;
    
    
        /*初始化菜单项*/
        void initmenubar();
        /*退出函数*/
        void closeEvent(QCloseEvent *event);
        /*未登录设置所有SQL按钮不可用*/
        void close_action();
        /*设置所有SQL按钮可用*/
        void open_action();
        /*执行SQL操作*/
        void exec_query(const char *strsql);
        /*判断SQL操作的类型*/
        bool judge_sqltype(const char *strsql);
        /*创建显示view*/
        void display_view(const char *actionname,QStandardItemModel *model);
    
    private slots:
        //登录事件
        void login_inclick();
        //注销事件
        void login_outclick();
        //退出事件
        void quit_click();
        /*添加基站*/
        void add_station();
        /*添加基站控制器*/
        void add_stationcontrl();
        /*添加MSC*/
        void add_MSC();
        /*删除基站*/
        void del_station();
        /*删除基站控制器*/
        void del_stationcontrl();
        /*删除MSC*/
        void del_MSC();
        /*查询基站*/
        void sel_station();
        /*查询基站控制器*/
        void sel_stationcontrl();
        /*查询MSC*/
        void sel_MSC();
        /*修改基站*/
        void update_station();
        /*修改基站控制器*/
        void update_stationcontrl();
        /*修改MSC*/
        void update_MSC();
        /*执行脚本*/
        void exec_script();
        /*层叠窗口*/
        void cascade_window();
        /*并列窗口*/
        void parallel_window();
        /*帮助*/
        void helper_click();
        /*关于*/
        void mabout_click();
    
    };
    
    #endif // MAINWINDOW_H
    //scriptdlg.h
    #ifndef SCRIPTDLG_H
    #define SCRIPTDLG_H
    
    #include <QDialog>
    #include <QLabel>
    #include <QTextEdit>
    #include <QPushButton>
    
    class ScriptDlg : public QDialog
    {
        Q_OBJECT
    public:
        explicit ScriptDlg(QWidget *parent = 0);
        QString strsql;
        bool isexec;
    
    signals:
    
    public slots:
    private:
        QLabel *label1;
        QTextEdit *tedit1;
        QPushButton *btn1,*btn2;
    private slots:
        void btn1_click();
        void btn2_click();
    
    };
    
    #endif // SCRIPTDLG_H
    //vmysql.h
    #ifndef VMYSQL_H
    #define VMYSQL_H
    
    /*mysql属于TCP/IP协议,所以需要使用socket,
     * windows下的socket与linux下不同,在windows.h文件下
     * SOCKET listen_st;--windows下定义socket描述符*/
    #include <windows.h>
    
    #include <C:/mysql/include/mysql.h>
    #include <QStandardItemModel>
    
    
    /*封装所有和mysql相关函数*/
    class Vmysql
    {
    public:
        Vmysql();
        ~Vmysql();
        /*连接数据库*/
        int sql_connect(const char *hostname,const char *username,const char *passwd,const char *dbname);
        /*断开数据库连接*/
        void sql_disconnect();
        /*执行SQL更新*/
        int sql_exec(const char *strsql);
        /*执行SQL查询*/
        int sql_query(const char *strsql,QStandardItemModel **model);
        /*错误信息*/
        const char *ger_error();
    private:
        MYSQL mysql1;
        MYSQL *connection;
        char errorbuf[1024];
    };
    
    #endif // VMYSQL_H
  • 相关阅读:
    百度地图生成器添加标注不显示
    为web文件夹添加IIS应用程序池用户权限
    SSL证书 .pem转.pfx
    sql获取表的所有字段及属性
    sql server不用安装sql管理工具开启sa
    asp.net mvc+webuploader大文件分片上传
    将WinForm程序(含多个非托管Dll)合并成一个exe的方法
    手机访问网站自动跳转到手机版
    c++和cuda混合编程 实现传统神经网络
    leetcode 338
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6056889.html
Copyright © 2020-2023  润新知