1. 问题代码
stuSql::stuSql(QObject *parent) : QObject(parent)
{
struct stuInfo s;
s.id=2206;
s.name='大陈';
s.age=23;
s.grade='新媒体2022';
s.class1='新媒体传播';
db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPassword("123456");
db.setUserName("root");
db.setDatabaseName("mydatabase");
if(db.open()){
QMessageBox::information(nullptr,"警告","数据库连接成功");
}else{
QMessageBox::warning(nullptr,"警告","数据库连接失败");
}
insertStu(s);
}
int stuSql::getStudentnum()
{
}
bool stuSql::insertStu(stuInfo info)
{
QSqlQuery query(db);
QString str=QString("INSERT INTO managementVALUES(%1,'%2',%3,'%4','%5','%6')")
.arg(info.id).arg(info.name).arg(info.age)
.arg(info.grade).arg(info.class1).arg(info.phone);
query.exec(str);
}
2. 出现问题
3. 如何解决
知识点:如果要在字符串中使用单引号或双引号,需要用另一种引号来包裹这个字符
所有将代码改为:
stuSql::stuSql(QObject *parent) : QObject(parent)
{
struct stuInfo s;
s.id=2206;
s.name="大陈";
s.age=23;
s.grade="新媒体2022";
s.class1="新媒体传播";
db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPassword("123456");
db.setUserName("root");
db.setDatabaseName("mydatabase");
if(db.open()){
QMessageBox::information(nullptr,"警告","数据库连接成功");
}else{
QMessageBox::warning(nullptr,"警告","数据库连接失败");
}
insertStu(s);
}
int stuSql::getStudentnum()
{
}
bool stuSql::insertStu(stuInfo info)
{
QSqlQuery query(db);
QString str=QString("INSERT INTO managementVALUES(%1,'%2',%3,'%4','%5','%6')")
.arg(info.id).arg(info.name).arg(info.age)
.arg(info.grade).arg(info.class1).arg(info.phone);
query.exec(str);
}
4. 结果