我希望我的应用程序获取ComboBox的值,然后设置用户选择的值或以某种方式获取先前选择的值.
问题是,我的表格中,有四个列表和组合框(其中包含从列表中的所有值),我想重新填充组合框的值返回到它取自然后删除新选择的项目列表来自其他/相同的名单.
我正在使用Qt的MySQL驱动程序和32位MinGW Qt.这是有效的:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("MyDatabase");
//SETUP
if (db.open) {
QSqlQuery q;
if (q.prepare("SELECT id FROM Things WHERE parent_id = :pid")) {
q.bindValue(":pid", 1);
qDebug() << boundValues();
if (q.exec) {
//DO STUFF
} } }
Run Code Online (Sandbox Code Playgroud)
但是现在我正在使用64位MSVS Qt,我需要使用MySQL ODBC Connector.我已经设置并更改了代码以反映:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={MySQL ODBC 8.0 Unicode Driver};DATABASE=MyDatabase;");
Run Code Online (Sandbox Code Playgroud)
这就是我所做的一切.没有WHERE子句的SELECT语句按预期工作,我可以像以前一样通过QSqlTableModel操作数据库.
这只是绑定停止工作......我的意思是绑定值在那里,qDebug返回:
QMap((":pid",QVariant(int,1)))
但是现在查询在exec之后没有返回任何行; 但也没有错误...这也有效:
q.prepare(QString("SELECT id FROM Things WHERE parent_id = '%1'").arg(1))
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我想将我的C#WinForms应用程序移植到Windows和Linux上.我有一些Java的经验和更多的Python经验,但我真的不喜欢第一个,我关心第二个(我的意思是混淆,需要在目标PC上安装Python等)所以我已经选择使用Vala和GTK3工具包......它主要是为了创建GNOME应用程序而创建的,但是我已经读过它是多平台并且完全编译为C,并且具有运行软件所需的所有依赖性 - 但是它是否正确?我的意思是:在Linux上创建应用程序时,我会遇到任何限制吗?我不想完成它然后发现它不能在Windows上运行因为我使用了一些GNOME库...
我有一个std::vector<const char*>我填充的.push_back("something")。如何删除不包括std::string标题的内容?delete段错误,并且std::free需要void*它“无法使用‘const char *’类型的左值初始化[..]”。
我有这个问题,从TempData探测整数,因为它看到DempData ["sth"]作为对象,而不是整数本身.这是我的Create方法我将我的整数发送到TempData:
public ActionResult Create(int CustomerId, int qSetId, int Count)
{
qSet qset = db.qSets.Find(qSetId);
TempData["qSetId"] = qset.Id;
Customer customer = db.Customers.Find(CustomerId);
TempData["CustomerId"] = customer.Id;
List<Relation> relations = db.Relations.Where(r => r.qSetId.Equals(qSetId)).ToList<Relation>();
Question question = new Question();
List<Question> questions = new List<Question>();
foreach (Relation relation in relations)
{
question = db.Questions.Find(relation.QuestionId);
if (questions.Contains<Question>(question).Equals(false))
questions.Add(question);
}
if (questions.Count<Question>().Equals(Count).Equals(false))
{
TempData["QuestionId"] = questions[Count].Id;
TempData["QuestionType"] = questions[Count].Type;
ViewBag["QuestionContent"] = questions[Count].Content;
TempData["Count"] = Count + 1;
return View();
}
else
{
return RedirectToAction("ThankYou");
}
} …Run Code Online (Sandbox Code Playgroud) String inputPass = textBox2.Text;
byte[] inputBytes = System.Text.Encoding.UTF8.GetBytes(inputPass);
byte[] inputHashedBytes = Sha256.ComputeHash(inputBytes);
String inputHash = Convert.ToBase64String(inputHashedBytes);
Run Code Online (Sandbox Code Playgroud)
我得到一些奇怪的输出:
Q9nXCEhAn7RkIOVgBbBeOd5LiH7FWFtDFJ22TMLSoH8 =
通过输出哈希看起来像这样:
43d9d70828409fb46420e56005b05e38de4b887ec5585b43149db64cc2d2a07f
我有这个方法:
template <typename Type>
static QList<Type> comboListToItemsList(QList<QList<QVariant>>& comboList) {
QList<Type> itemsList;
if (comboList.length() > 0) {
foreach (QList<QVariant> dbItem, comboList) {
Type item(dbItem);
itemsList.append(item);
}
}
return itemsList;
}
Run Code Online (Sandbox Code Playgroud)
当我打电话给它时:
QList<SettingItem> settingItems =
(QList<SettingItem>) DatabaseManager::comboListToItemsList(result.first);
Run Code Online (Sandbox Code Playgroud)
它"无法推断出模板参数类型".如何通过添加来比较我已经做的更多地帮助编译器
(QList<SettingItem>)
Run Code Online (Sandbox Code Playgroud)
?我有创建方法的子类名称的枚举,但是我真的不知道如何在这里使用它...