在连接数据库前需确保电脑上已装有MySQL数据库,之后添加驱动,确保所写的QT程序能访问到外面的数据库
设置如下
点击添加,你自己创建的数据库信息(ip,端口号等都需对应---注意:这里连接的是云端的数据库),设置完成即可。
新建数据库连接
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setHostName("47.98.61.60");
db.setPort(3306);
db.setUserName("root");
db.setPassword("123456");
db.setDatabaseName("test");
if(!db.open()){
QMessageBox::warning(this,"错误",db.lastError().text());
}
else
{
qDebug()<<"连接成功1";
}
新增数据:
QSqlQuery quey;
QString data1 = ui->lineEdit->text(), data2 = ui->lineEdit_3->text() ,data3=ui->lineEdit_2->text();
quey.prepare("insert into data(name,class,score) values(?,?,?)");
quey.addBindValue(data1);
quey.addBindValue(data2);
quey.addBindValue(data3);
quey.exec(); //执行
删除数据:
QSqlQuery quey;
QString delaname=ui->lineEdit->text();
quey.prepare(QString("DELETE FROM data WHERE name=?"));
quey.addBindValue(delaname);
quey.exec();
查询:
QSqlQuery quey;
int flag=0;
quey.exec("select * from data");
while(quey.next())
{
if(ui->lineEdit->text()==quey.value(1).toString())
{
QMessageBox *box=new QMessageBox(QMessageBox::Information,"查询成功",quey.value(1).toString(),QMessageBox::Ok | QMessageBox::Close);
box->exec();
flag=1;
}
}
if(flag==0)
{
QMessageBox *box_no=new QMessageBox(QMessageBox::Information,"查询结果","未查询到相关信息",QMessageBox::Ok | QMessageBox::Close);
box_no->exec();
}
改:
QSqlQuery quey;
QString valueStr=ui->lineEdit_2->text();
QString flag = ui->lineEdit->text();
quey.prepare("update data set score = ? where name = ?");
quey.addBindValue(valueStr);
quey.addBindValue(flag);
quey.exec(); //执行
遍历:
QSqlQuery quey;
quey.exec("select * from data");
qint32 rowno=0;
while(quey.next())
{
qDebug()<<quey.value(0).toString()<<quey.value(1).toString()<<quey.value(2).toString()<<quey.value(3).toString();
ui->tableWidget->insertRow(rowno);
for(int i=0;i<4;i++)
{
ui->tableWidget->setItem(rowno,i,new QTableWidgetItem(quey.value(i+1).toString()));
}
rowno++;
}