我的应用程序使用一个组合框,其中填充了从 API 返回的列表名称。API 还返回与每个名称关联的 ID。如何让组合框显示名称,但是当用户选择名称时,与该名称关联的 ID 存储在变量中,或用于执行某些操作?我可以让组合框填充名称,但名称没有任何实际用途,仅用于显示目的。我不知道如何让组合框显示名称,但使用 ID 作为其值。
这是API返回的json。
[
{
"BookId": "13a7dc2b-80da-4407-bd4d-806d7f4adc3b",
"BookName": "Reckon API",
"Bookstatus": 3,
"Country": "AU"
},
{
"BookId": "32c03594-1ecb-4f97-8453-5b28a03d26d9",
"BookName": "Payroll Book",
"Bookstatus": 3,
"Country": "AU"
},
{
"BookId": "51d16696-b98a-4b3b-ac67-f36559cff70b",
"BookName": "Accounting Book",
"Bookstatus": 3,
"Country": "AU"
}
]
这是我用来用名称填充组合框的代码:
using (HttpClient httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = httpClient.GetAsync("https://api.reckon.com/R1/cashbooks").Result;
string responseText = response.Content.ReadAsStringAsync().Result;
JArray parsedArray = JArray.Parse(responseText);
foreach (JObject parsedObject in parsedArray.Children<JObject>())
{
foreach (var parsedProperty in parsedObject.Properties())
{
if (parsedProperty.Name == "BookName")
{
comboBox2.Items.Add(parsedProperty.Value);
}
}
}
}
我有一个 MYSQL 数据库,我存储了我的名称和 ID 列表,我认为我可以使用数据库作为数据源,显示成员作为名称,值成员作为 id,但是当我运行应用程序时,组合框没有t 填充,但我不知道为什么。我如何完成这项任务对我来说并不重要,我只需要找到一种方法。
编辑:
我发现这篇我认为可能会有所帮助的帖子。:如何为组合框设置 mySQL 数据源(C#)
并将此代码添加到我的应用程序中:
using (MySqlConnection mySqlConnection = new MySqlConnection())
{
mySqlConnection.ConnectionString = "server=localhost;userid=root;password=;database=reckon api sample app dev;SslMode=none";
mySqlConnection.Open();
string sqlQuery = "SELECT BookId, BookName FROM cashbooks";
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(sqlQuery, mySqlConnection);
DataSet dataSet = new DataSet();
mySqlDataAdapter.Fill(dataSet);
comboBox2.DataSource = dataSet.Tables[0];
comboBox2.DisplayMember = "BookName";
comboBox2.ValueMember = "BookId";
}
我的组合框现在填充了很棒的名称。当我从组合框中选择一个名称时,如何告诉我的应用程序获取与该名称关联的 id 并使用它来做某事?例如,我想将 ID 保存到一个变量中,以便在以后的 API 调用中使用它。
谢谢。