复制 #include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//打印所支持的驱动
qDebug() << QSqlDatabase::drivers();
//添加SQLServer数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
//连接SQLServer数据库
db.setHostName("192.168.10.10"); //数据库服务器IP
db.setUserName("admin"); //数据库登录账号
db.setPassword("passwd"); //数据库登录密码
db.setDatabaseName("databasename"); //连接的数据库名称,此处为pricedb
db.open();
query = new QSqlQuery();
query->exec("create table priceinfo(caizhi varchar(50),chandi varchar(50),danjia varchar(50),guige varchar(50),pinming varchar(50),xinghao varchar(50),xiushi varchar(50),yanse varchar(50))");
//打开数据库
if(!db.open())
{
QMessageBox::warning(this,"错误提示",db.lastError().text());
return;
}
qmodel = new QSqlQueryModel();
qmodel->setQuery("select caizhi ,chandi , danjia ,guige , pinming , xinghao , xiushi , yanse from priceinfo");
ui->tableView->setModel(qmodel);
//注意设置表头的位置,并且这样的方式比sql语句设置的方式好,SQL语句的方式只能是一次,后面会变化
qmodel->setHeaderData(0,Qt::Horizontal,"材质");
qmodel->setHeaderData(1,Qt::Horizontal,"产地");
qmodel->setHeaderData(2,Qt::Horizontal,"单价");
qmodel->setHeaderData(3,Qt::Horizontal,"规格");
qmodel->setHeaderData(4,Qt::Horizontal,"品名");
qmodel->setHeaderData(5,Qt::Horizontal,"型号");
qmodel->setHeaderData(6,Qt::Horizontal,"修饰");
qmodel->setHeaderData(7,Qt::Horizontal,"颜色");
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //数据列宽度自适应, 横向填满表格
ui->tableView->scrollToBottom();
// if (db.open())
// {
// QMessageBox::about(this,"连接成功提示","数据库连接成功");
// }
// else
// {
// QMessageBox::warning(this,"错误",db.lastError().text());
// return;
// }
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_add_clicked()
{
// 材质 lineEdit
// 产地 lineEdit_2
// 价格 lineEdit_3
// 规格 lineEdit_4
// 品名 lineEdit_5
// 型号 lineEdit_6
// 修饰 lineEdit_7
// 颜色 lineEdit_8
QString caizhi = ui->lineEdit->text();
QString chandi = ui->lineEdit_2->text();
QString danjia = ui->lineEdit_3->text();
QString guige = ui->lineEdit_4->text();
QString pinming = ui->lineEdit_5->text();
QString xinghao = ui->lineEdit_6->text();
QString xiushi = ui->lineEdit_7->text();
QString yanse = ui->lineEdit_8->text();
QString sql = "insert into priceinfo (caizhi,chandi,danjia,guige,pinming,xinghao,xiushi,yanse)values('"+caizhi+"','"+chandi+"','"+danjia+"','"+guige+"','"+pinming+"','"+xinghao+"','"+xiushi+"','"+yanse+"')";
if(query->exec(sql)==true)
{
QMessageBox::about(this,"注册提示","记录添加成功");
qmodel->setQuery("select * from priceinfo");
ui->lineEdit->clear();
ui->lineEdit_2->clear(); //清空文本框内容
ui->lineEdit_3->clear(); //清空文本框内容
ui->lineEdit_4->clear(); //清空文本框内容
ui->lineEdit_5->clear(); //清空文本框内容
ui->lineEdit_6->clear(); //清空文本框内容
ui->lineEdit_7->clear(); //清空文本框内容
ui->lineEdit_8->clear(); //清空文本框内容
ui->lineEdit->setFocus(); //鼠标焦点移动到第一个文本框
ui->tableView->scrollToBottom();
}
else
{
QMessageBox::about(this,"错误提示","记录添加失败");
return;
}
}
void Widget::on_pushButton_4_clicked()
{
QString delsql ="delete from priceinfo";
query->exec(delsql);
qmodel->setQuery("select * from priceinfo");
ui->lineEdit->clear();
ui->lineEdit_2->clear(); //清空文本框内容
ui->lineEdit_3->clear(); //清空文本框内容
ui->lineEdit_4->clear(); //清空文本框内容
ui->lineEdit_5->clear(); //清空文本框内容
ui->lineEdit_6->clear(); //清空文本框内容
ui->lineEdit_7->clear(); //清空文本框内容
ui->lineEdit_8->clear(); //清空文本框内容
ui->lineEdit->setFocus();
QMessageBox::information(this,"提示信息","已清空所有记录");
}
void Widget::on_update_clicked()
{
QString caizhi = ui->lineEdit->text();
QString chandi = ui->lineEdit_2->text();
QString danjia = ui->lineEdit_3->text();
QString guige = ui->lineEdit_4->text();
QString pinming = ui->lineEdit_5->text();
QString xinghao = ui->lineEdit_6->text();
QString xiushi = ui->lineEdit_7->text();
QString yanse = ui->lineEdit_8->text();
QString delsql = "update priceinfo set caizhi= '"+caizhi+"',chandi='"+chandi+"',danjia='"+danjia+"',guige='"+guige+"',pinming = '"+pinming+"',xinghao='"+xinghao+"',xiushi='"+xiushi+"',yanse='"+yanse+"' where pinming = '"+pinming+"'";
query->exec(delsql);
qmodel->setQuery("select * from priceinfo");
ui->lineEdit->clear();
ui->lineEdit_2->clear(); //清空文本框内容
ui->lineEdit_3->clear(); //清空文本框内容
ui->lineEdit_4->clear(); //清空文本框内容
ui->lineEdit_5->clear(); //清空文本框内容
ui->lineEdit_6->clear(); //清空文本框内容
ui->lineEdit_7->clear(); //清空文本框内容
ui->lineEdit_8->clear(); //清空文本框内容
ui->lineEdit->setFocus();
QMessageBox::information(this,"提示信息","已修改成功");
}
void Widget::on_tableView_clicked(const QModelIndex &index)
{
QString caizhi1=index.siblingAtColumn(0).data().toString(); //获取点击行指定列的数据
ui->lineEdit->setText(caizhi1); //将获取点击行指定列的数据赋予相应的文本输入框
QString chandi1=index.siblingAtColumn(1).data().toString();
ui->lineEdit_2->setText(chandi1);
QString danjia1=index.siblingAtColumn(2).data().toString();
ui->lineEdit_3->setText(danjia1);
QString guige1=index.siblingAtColumn(3).data().toString();
ui->lineEdit_4->setText(guige1);
QString pinming1=index.siblingAtColumn(4).data().toString();
ui->lineEdit_5->setText(pinming1);
QString xinghao1=index.siblingAtColumn(5).data().toString();
ui->lineEdit_6->setText(xinghao1);
QString xiushi1=index.siblingAtColumn(6).data().toString();
ui->lineEdit_7->setText(xiushi1);
QString yanse1=index.siblingAtColumn(7).data().toString();
ui->lineEdit_8->setText(yanse1);
}
void Widget::on_del_clicked()
{
QString pinming2 = ui->lineEdit_5->text();
QString delsql = "delete from priceinfo where pinming = '"+pinming2+"'";
query->exec(delsql);
qmodel->setQuery("select * from priceinfo");
}