从网上查了很多资料,大多只是简单的说一下,没有详细的说明。后来又认真看了一下QT助手资料,写一数据库连接的详细用法。不多说,看以下代码就明白了。
QString connect = "connectname"; //自定义的连接名称
{ //这个括号一定要有,这样可以把QSqlDatabase约束在一个指定的作用域范围内
QSqlDatabase data;
initDateBase(data, connect);
const QString time = PatternImgMs::getTimeString();
const QString str = sqlstring; //自定义的SQL处理
QSqlQuery query(data);
if (!query.exec(str))
{
qDebug() << "Error: Fail to insert data. ";
}
data.close();
}
//在作用域范围外再删除以这个名称命名的数据库连接
QSqlDatabase::removeDatabase(connect);
void initDateBase(QSqlDatabase& data, QString& connectName)
{
if (QSqlDatabase::contains(connectName))
{
///不允许创建两个相同名字的连接,所以首先判断是否存在相同的连接
data = QSqlDatabase::database(connectName);
}
else
{
///创建新的连接
data = QSqlDatabase::addDatabase("QSQLITE", connectName);
data.setDatabaseName("database.db");
if (!data.open())
{
//QMessageBox::critical(nullptr, "错误", "数据库连接错误!");
exit(0);
}
}
}