我是QT编程新手所以我正在尝试简单的MySQL操作(连接,构建数据库,构建表...)
到目前为止我使用了c#,所以我在这里使用了类似的构造(即我将pushButton用于运行代码并在editText arrea中打印出消息)
我的"连接"代码工作得很好,"构建数据库"码, 但是我在创建表格时遇到了麻烦。
我的代码:
void MainWindow::on_pushButton_2_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("myTestDB");
db.setUserName("root");
db.setPassword("");
if(db.open()) { ui->textBox->append("Connected..."); db.close(); }
else ui->textBox->append(db.lastError().text());
QSqlQuery query;
query.prepare( "CREATE TABLE IF NOT EXISTS myTable (id INTEGER UNIQUE PRIMARY KEY, firstname VARCHAR(30), lastname VARCHAR(30))" );
if(query.exec())
{
ui->textBox->append("Table created");
}
else
{
ui->textBox->append("Error");
ui->textBox->append("MySQL error:" + query.lastError().text());
ui->textBox->append("MySQL error code:"+ QString::number(query.lastError().number()));
}
}
当我运行代码时,我得到了这个回复:
连接...
错误
MySQL错误:
MySQL错误代码:-1
因此MySQL错误为空,MySQL错误代码为-1
我还直接运行SQL代码来检查查询错误
感谢您提供任何帮助和建议。
答案 0 :(得分:1)
连接数据库后直接关闭数据库。
您需要将db
交给查询。
更改
if(db.open()) { ui->textBox->append("Connected..."); db.close(); }
QSqlQuery query;
到
if(db.open()) { ui->textBox->append("Connected..."); }
QSqlQuery query(db);
然后在查询后关闭数据库。
这是您的第一个问题:欢迎使用StackOverflow;)