通过myData *db = myData::getMyData(); string sql = "select * from car where cpn='" + cpn + "'"; int row = 0, col = 0; char ** qres; db->getData_exec(sql.c_str(), row, col, qres); string output = ""; if (row > 0) { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { output += qres[i*col + j]; output += "\t"; } output += "\r\n"; } this->information_edit->SetWindowText(output.c_str()); system("pause"); return 3; }查询数据有几行
时间: 2023-06-13 13:07:01 浏览: 41
通过代码可以看出,查询数据的结果保存在 qres 指针数组中,每个元素代表一行数据,而行数则是数组 qres 的长度除以列数 col,因此查询数据的行数为 row = qres长度 / col。可以使用下面的代码获取查询数据的行数:
```cpp
int row = qres长度 / col;
```
相关问题
myData *db = myData::getMyData(); string sql = "SELECT * FROM car"; int row = 0, col = 0; char ** qres; db->getData_exec(sql.c_str(), row, col, qres); vector<myData> data_list;遍历数据库
的查询结果,将结果存储在一个vector<myData>类型的变量data_list中:
for (int i = 0; i < row; i++) {
myData data;
for (int j = 0; j < col; j++) {
if (qres[i * col + j] != NULL) {
if (j == 0)
data.id = atoi(qres[i * col + j]);
else if (j == 1)
data.name = qres[i * col + j];
else if (j == 2)
data.color = qres[i * col + j];
else if (j == 3)
data.price = atof(qres[i * col + j]);
}
}
data_list.push_back(data);
}
在这段代码中,我们先定义了一个vector<myData>类型的变量data_list,用来存储查询结果。然后用for循环遍历查询结果,每次循环都创建一个myData类型的变量data,用来存储当前这一行的数据。
在内层的for循环中,我们根据列的编号,将查询结果中的值赋给myData对象的对应属性。需要注意的是,我们在赋值之前,先判断查询结果中的值是否为NULL,如果是NULL,则不进行赋值操作。
最后,将myData对象添加到data_list中,完成遍历。
myData *db = myData::getMyData(); string sql = "select * from car"; int row = 0, col = 0; char ** qres; db->getData_exec(sql.c_str(), row, col, qres); if (row > 0) { for (int i = 0; i < col; i++) { return i; } }遍历数据库返回表的行数,并显示在this->remainder_edit = new CEdit(45, 10, 9, 2, 0, 0, 0, "")中
首先,你的代码中缺少一些关键信息,比如说这段代码是在什么上下文中被调用的,以及 `myData` 类的定义等等。不过,看起来你想要从数据库中取出 `car` 表的所有数据,然后将表的列数显示在一个 `CEdit` 控件中。
以下是一个可能的实现方式:
```c++
// 假设 this->remainder_edit 是一个 CEdit 指针,用于显示表的列数
// 在调用本函数之前,应该先创建这个指针并将其添加到相应的窗口中
void displayCarTableColumnCount() {
myData *db = myData::getMyData();
string sql = "select * from car";
int row = 0, col = 0;
char **qres;
db->getData_exec(sql.c_str(), row, col, qres);
if (row > 0 && col > 0) {
// 如果表中有数据,而且列数大于 0
CString countStr;
countStr.Format(_T("%d"), col);
this->remainder_edit->SetWindowTextW(countStr);
}
}
```
这个函数首先从数据库中取出 `car` 表的所有数据,并存储在二维字符数组 `qres` 中。然后,如果表中有数据,而且列数大于 0,就将列数转换为字符串并显示在 `this->remainder_edit` 控件中。注意,这里使用了 `CString` 类型来表示字符串,因为它是 MFC 中常用的字符串类型。如果你没有使用 MFC,可以考虑使用其他的字符串类型,比如说 `std::string`。