本人小小菜鸟,接触QT不到1个月。晒晒代码 希望高手指点。
——————————————————————————————————————
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //我用的是SQLite 数据库
db.setDatabaseName("storagemanage.db"); // storagemanage.db 当然就是 数据库名字了
if (!db.open())
{
QMessageBox::critical(0, qApp->tr("Cannot open database"), //套话 例子上考的 呵呵
qApp->tr("Unable to establish a database connection.\n"
"This example needs SQLite support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);
return false;
}
QSqlQuery query;
query.exec("create table company (id int primary key," //建表
"name varchar NOT NULL,address varchar,tel int,"
"fax int,people varchar,mobile int,ps varchar);");
query.exec("create table user (name varchar primary key,"
"passwd varchar NOT NULL,remember int,purview int);");
query.exec("create table department (id int primary key,"
"name varchar NOT NULL,skill varchar,tel int,fax int,"
"email varchar,ps varchar)");
query.exec("insert into user values('root', 'root',0,1)"); //添加数据
Department::Department(QWidget *parent)
: QMainWindow(parent) // 可以看出这是个
{
ui.setupUi(this);
QSqlTableModel *model;
model = new QSqlTableModel(this);
model->setTable("department");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("部门编号")); //这些是 修改数据库显示时候的标头的
model->setHeaderData(1, Qt::Horizontal, tr("部门名称"));
model->setHeaderData(2, Qt::Horizontal, tr("职能"));
model->setHeaderData(3, Qt::Horizontal, tr("电话"));
model->setHeaderData(4, Qt::Horizontal, tr("传真"));
model->setHeaderData(5, Qt::Horizontal, tr("电子邮件"));
model->setHeaderData(6, Qt::Horizontal, tr("备注"));
ui.tableDepart->setModel(model);
}
void Department::on_addButton_clicked()
{
QSqlQuery query;
if(ui.partName->text() == "" || ui.partId->text() == "")
{
QMessageBox::critical(0, qApp->tr("提示"),
qApp->tr("输入数据有误!部门名称和部门编号不能为空"), QMessageBox::Cancel);
}
else
{
query.prepare("insert into department values("+ui.partId->text()+",'" //partId 和下面的类似的是界面上的LineEdit
+ui.partName->text()+"','"+ui.partSkill->text()+"',"
+ui.partTel->text()+","+ui.partFax->text()+",'" //上面可以看到我建表的 id 和 name设的是不能为空的 +ui.emailEdit->text()+"','"
//整个的数据添加 所有项必须要填 要不就失败,不知道什么原因,高手指点
+ui.psEdit->text()+"')");
query.exec();
QMessageBox::information(0, qApp->tr("提示"),
qApp->tr("输入数据成功!"), QMessageBox::Ok);
}
}
//大家从上面可以看到 我是用 tableDepart 这个 tableview 来显示的 我想把 这个tableview 和对应的 lineedit链接起来
例如 我在table中点一个 数据 它的信息就会显示在 对应的lineedit 中 不知道如何来实现。