今天来讲解一下有关数据库的操作,数据库操作很简单,最重要的是sql语句.
这是我实现插入的一些内容
void initDB(); //初始化数据库
QList selectDataFromBase(); //查询所有信息
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("HostName.db");
db.setDatabaseName("DatabaseName"); //设置数据库名
bool ok = db.open(); //打开数据库
if(ok)
{
qDebug()<<"Create DB";
QSqlQuery query;
query.exec("create table StuManager (create_date datetime, "
"id varchar(20) primary key, name varchar(20) ,"
" sex varchar(20) ,age INTEGER ,"
"address varchar(20) , phone varchar(12) , description varchar(50))"); //执行创建表的sql语句
}
else
{
qDebug()<
QSqlQuery query("SELECT * FROM StuManager");
QList stuInfo;
while (query.next()) //遍历查询出来的记录
{
QStringList rowData ; //把查询出来的记录先存储到rowData中,然后再放到QList中
rowData <
代码如下:
void Widget::ExecAddSql(QVariantMap stuInfo)
{
if(m_operateType==Add) //如果是添加类型 就执行否则就不执行 ,因为之前点击添加按钮会给两个槽函数发信号 所以要这样写
{
QString create_date=stuInfo.value("datatime").toString();
QString id=stuInfo.value("number").toString();
QString name=stuInfo.value("name").toString();
QString sex=stuInfo.value("sex").toString();
QString age=stuInfo.value("age").toString();
QString address=stuInfo.value("address").toString();
QString phone=stuInfo.value("phone").toString();
QString description=stuInfo.value("description").toString();
qDebug()<appendRowData(rowData);//如果添加成功就把要已经添加的数据添加到表格中.
QMessageBox::information(this ,"提示" , "添加成功!");
}else
{
QMessageBox::information(this,"提示","添加失败");
}
}
}
void Widget::ExecEditSql(QVariantMap stuInfo)
{
if(m_operateType==Edit) //如果是修改类型 就执行否则就不执行 ,因为之前点击添加按钮会给两个槽函数发信号 所以要这样写
{
QString create_date = stuInfo.value("datetime").toString();
QString id = stuInfo.value("number").toString();
QString name = stuInfo.value("name").toString();
QString sex = stuInfo.value("sex").toString();
QString age = stuInfo.value("age").toString();
QString address = stuInfo.value("address").toString();
QString phone = stuInfo.value("phone").toString();
QString description = stuInfo.value("description").toString();
QString sql;
sql = QString("UPDATE StuManager "
"set create_date = '%0' ,id = '%2' ,name = '%3',"
"sex = '%4',age = '%5',address = '%6', phone = '%7',description = '%8'"
" where id = '%9' ")
.arg(create_date).arg(id).arg(name).arg(sex).arg(age).arg(address).arg(phone).arg(description).arg(id);//构造sql语句
QSqlQuery query;
bool ok = query.exec(sql); //执行sql语句
if(ok) //判断是否执行成功
{
onBtnRefresh(); //重新加载数据
QMessageBox::information(this ,tr("提示") , tr("修改成功!"));
}
else
{
QMessageBox::information(this ,tr("提示") , tr("修改失败!"));
}
}
}
void Widget::ExecDelSql(QString id)
{
QString sql;
sql=QString("delete from StuManager"
" where id='%1'").arg(id); //利用id构造sql语句
QSqlQuery query;
bool ok=query.exec(sql); //执行sql语句
if(ok)
{
onBtnRefresh(); //重新加载数据
QMessageBox::information(this,"提示","删除成功");
}else
{
QMessageBox::information(this,"提示","删除失败");
}
}
四.总结
我是一个新手,代码是参考网上其它程序写的.还有很多不足.只实现了学生管理,教师管理还没有实现.不过代码都差不多.
代码我会上传的.
资源下载:
https://download.csdn.net/download/m0_37821391/12186570