文件头添加#include<QtSql/QtSql>
工程文件pro中添加QT += sql
//连接数据库函数如下:
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");//利用odbc连接sqlsever
db.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;" //服务器名称
"DATABASE=%2;"//数据库名
"UID=%3;" //登录名
"PWD=%4;" //密码
).arg("USER-20180909NN\\TONG")//服务器名称,一般服务器名需要多加一个'\'表示转义字符
.arg("data")//数据库名 用你的数据库名来代替data
.arg("sa")//登录名 用你的数据库名来代替sa
.arg("1234")//密码 用你的数据库名来代替1234
);//只要对号入座就可连接
if(db.open())
{
qDebug()<<"connect sucess";
}
if (!db.open())
{
QMessageBox::critical(0, qApp->tr("Cannot open database"),
db.lastError().databaseText(), QMessageBox::Cancel);
}
//查询数据库信息
void Widget::on_pushButton_query_clicked(){
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("select * from dbo.dingdan");//这里直接设置SQL语句,dbo.dingdan 表示数据库名称
ui->tableView->setModel(model);//在tableView中显示数据库信息
}
//插入数据库的函数
void Widget::insert_da()
{
QSqlQuery query(db);
if(!query.prepare("INSERT INTO dbo.dingdan(species,price,number)" "VALUES(:species,:price,:number)"))
{
qDebug()<<"error";
}
query.bindValue(":species",species);
query.bindValue(":price",price);
query.bindValue(":number",number);
query.exec();
}
//删除数据库
void Widget::on_pushButton_delete_clicked()
{
QSqlQuery query(db);
QString text_dingdan = ui->lineEdit_dingdan->text();
QString str = QString("delete from dbo.dingdan where dingdan_ID='%1' ").arg(text_dingdan);
query.exec(str);
}
//修改数据库
void Widget::on_pushButton_alter_clicked()
{
QSqlQuery query(db);
QString text_dingdan = ui->lineEdit_dingdan->text();
QString text_meat=ui->lineEdit_meat->text();
int text_goodsin=ui->lineEdit_goods_in->text().toDouble();
int text_goodsout=ui->lineEdit_goods_out->text().toDouble();
int text_kucun =text_goodsin-text_goodsout;
QString str = QString("update dbo.dingdan set dingdan_ID='%1',kucun='%2',meat_ID='%3',goods_in='%4',goods_out='%5' where dingdan_ID ='%6' ").arg(text_dingdan).arg(text_kucun).arg(text_meat).arg(text_goodsin).arg(text_goodsout).arg(text_dingdan);
qDebug()<<query.exec(str);
on_pushButton_query_clicked();
}