Я недавно начал работать с QT, и у меня небольшая проблема. Кажется, я не понимаю, как работает QVariant. Я прохожу через помощь и смотрю онлайн, но она просто не погружается. В моем проекте я пытаюсь заполнить поле со списком производителей из базы данных. Я открыл базу данных и вытащил записи, но я переименую их все manValue. Теперь я понимаю, почему это происходит, проблема в том, что я не понимаю, как правильно использовать QVariant, чтобы получить результат, который я хочу. Первоначально я думал, что «manValue» будет идентификатором строки, содержащей фактическое значение из базы данных, но вместо этого он считывает значение из базы данных и гарантирует, что он не является нулевым, а затем переименовывает его. Я уже пробовал сделать строку, прежде чем я назначу QVariant любыми свойствами и присвою ему текст, который я получил из базы данных, а затем вставив эту строку, где manValue - это все еще не повезло. Любая помощь будет принята с благодарностью. Извините, я знаю, что это будет просто. Я просто noob, и помощь часто меня путает.Правильный способ использования QVariant при извлечении данных из базы данных
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("LOCALHOST\\TestERPServer");
db.setDatabaseName("TestERPConnection");
if (db.open())
{
QMessageBox::information(this,"Connected","Connection to the Database was Established\n"
"\nStatus: Connected");
QSqlQuery mfrQry;
if (mfrQry.exec("SELECT * FROM erp_data.manufacturers;"))
{
if (mfrQry.value(1) == "")
{
QMessageBox::information(this,"No Connection","Nothing in the Manufacturer Database\n"
"\nError: " + db.lastError().text());
}
else
{
while (mfrQry.next())
{
ui->mfrComboBox->addItem("manValue",QVariant(mfrQry.value(1)));
}
}
}
else
{
QMessageBox::information(this,"No Connection","Connection to the Manufacturer Database could not be Established\n"
"\nError: " + db.lastError().text());
}
}
else
{
QMessageBox::information(this,"No Connection","Connection to the Database could not be Established\n"
"\nError: " + db.lastError().text());
}
Даже если он очень хорошо разработан, Qt является сложным и занимает много времени, чтобы освоить. Пожалуйста, не извиняйтесь за незнание. –
Спасибо, но на самом деле, прошло около двух недель с тех пор, как я начал. Овладение чем-то подобным я уверен, может взять меня на всю жизнь, хотя, особенно если они продолжают обновлять LOL, но до сих пор я действительно наслаждаюсь тем, как действует Qt. – Rob