void CWin::load_data_from_db() { // 查询数据库获取数据 string sql = "SELECT * FROM mytable"; db.query(sql); // 遍历结果集,将数据存储到容器中 vector<MyData> data_list; while(db.next()) { MyData data; data.id = db.getInt("id"); data.name = db.getString("name"); data.age = db.getInt("age"); data_list.push_back(data); } // 将数据显示在控件中 for(int i=0; i<data_list.size(); i++) { // 创建文本框控件,显示每条数据 CEditBox* edit_box = new CEditBox(x+10, y+10+i*30, w-20, 20); edit_box->setText(data_list[i].name + " " + to_string(data_list[i].age)); ctrlArry.push_back(edit_box); } }
时间: 2023-06-14 19:05:15 浏览: 82
Dartou_cwin5:ActionScript3.0框架
这段代码是一个 C++ MFC 应用程序中的一个成员函数,用于从数据库中加载数据并将其显示在控件中。
首先,它构造了一个 SQL 查询语句,然后使用 `db.query(sql)` 函数执行了这个查询语句。`db` 是一个数据库操作对象。
接着,它通过循环遍历结果集,并将每条数据存储到一个 `vector` 容器中。在循环中,每次通过 `db.next()` 获取下一条结果,然后使用 `db.getInt()` 和 `db.getString()` 函数分别获取该结果中指定列的整数和字符串类型的值,并将这些值存储到一个 `MyData` 结构体中。最后,将这个结构体放入 `data_list` 容器中。
接下来,它通过循环遍历 `data_list` 容器中的每个元素,并为每个元素创建一个文本框控件,然后将该元素的姓名和年龄拼接成一个字符串,并将该字符串设置为文本框的文本。最后,将创建的文本框控件存储到 `ctrlArry` 容器中。
注意,这段代码中的 `CEditBox` 控件类型并不是标准的 MFC 控件类型,可能是开发者自定义的控件类型。
阅读全文