MFC中如何用c++查询个人信息,并把用结构体数组信息分别显示到编辑框
时间: 2024-02-23 12:56:48 浏览: 70
在MFC中,可以使用C++语言结合数据库查询来实现个人信息的查询和显示。以下是一个简单的示例代码,可以将查询结果分别显示到不同的编辑框中。
首先,需要定义一个结构体来存储个人信息:
```
typedef struct _PERSON_INFO
{
CString strName; // 姓名
int nAge; // 年龄
CString strAddress; // 地址
} PERSON_INFO;
```
然后,在MFC中打开数据库连接,并执行查询操作:
```
// 打开数据库连接
CDatabase db;
db.OpenEx(L"DSN=MyDSN;UID=MyUID;PWD=MyPWD");
// 执行查询操作
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly, L"SELECT * FROM PersonInfo");
// 定义一个结构体数组,用于存储查询结果
PERSON_INFO arrPersonInfo[100];
int nIndex = 0;
// 遍历查询结果,并将每个人的信息存储到结构体数组中
while (!rs.IsEOF())
{
CString strName, strAddress;
int nAge;
rs.GetFieldValue(L"Name", strName);
rs.GetFieldValue(L"Age", nAge);
rs.GetFieldValue(L"Address", strAddress);
arrPersonInfo[nIndex].strName = strName;
arrPersonInfo[nIndex].nAge = nAge;
arrPersonInfo[nIndex].strAddress = strAddress;
nIndex++;
rs.MoveNext();
}
rs.Close();
db.Close();
```
最后,将查询结果显示到不同的编辑框中:
```
// 将查询结果显示到不同的编辑框中
GetDlgItem(IDC_EDIT_NAME)->SetWindowText(arrPersonInfo[0].strName);
GetDlgItem(IDC_EDIT_AGE)->SetWindowText(CString().Format(L"%d", arrPersonInfo[0].nAge));
GetDlgItem(IDC_EDIT_ADDRESS)->SetWindowText(arrPersonInfo[0].strAddress);
```
其中,IDC_EDIT_NAME、IDC_EDIT_AGE、IDC_EDIT_ADDRESS是MFC窗口中三个编辑框的ID值,通过GetDlgItem函数获取对应的控件指针,再调用SetWindowText函数将查询结果显示到编辑框中。
需要注意的是,以上代码仅为示例,实际应用中需要根据具体的需求进行修改和完善。
阅读全文