【发布时间】:2012-04-25 15:21:56
【问题描述】:
我有一个简单的 Windows 窗体应用程序(带有一个 Access 数据库),它带有一个组合框 (cmbStores),它以可以想象的最简单的方式填充。
问题:我无法获取所选项目的值。
这是我填充此组合框的方式:
// Variable declaration
string strQueryStores = "SELECT StoreNumber FROM tblStoresAndRegion ORDER BY StoreNumber";
string strConnectionString = UtilityClass.GetConnectionString();
OleDbConnection connStores;
OleDbDataReader readerStores = null;
connStores = new OleDbConnection(strConnectionString);
try
{
connStores.Open();
OleDbCommand sqlGetStores = new OleDbCommand(strQueryStores, connStores);
cmbStore.Items.Clear();
cmbStore.Items.Add("All");
if (connStores != null)
{
readerStores = sqlGetStores.ExecuteReader();
if (readerStores.HasRows)
{
while (readerStores.Read())
{
cmbStore.Items.Add (Convert.ToInt32(readerStores["StoreNumber"]));
}
}
}
cmbStore.SelectedIndex = 0;
}
catch (OleDbException oledblEX)
{
MessageBox.Show(oledblEX.Message);
}
finally
{
if (readerStores != null)
readerStores.Close();
if (connStores != null)
connStores.Close();
}
这就是我试图获取所选项目的价值的方式。
int nStoreNumber = Convert.ToInt32(cmbABSM.SelectedItem);
【问题讨论】:
-
您用于获取所选项目的代码在哪里?你有例外吗?值不正确?当您尝试获取所选项目时发生了什么?
-
您的代码有些不一致。您填写 cmdStore 框,并尝试读取 cmbABSM 框。真的是这样吗,还是你打错了?
-
@Matzi ...我在这里打错了。代码应该是 int nStoreNumber = Convert.ToInt32(cmbStore.SelectedItem);
-
已解决(但仍然很困惑)...当我使用此代码时,int nStoreNumber = Convert.ToInt32(cmbStore.Text);它有效。
标签: c# combobox selecteditem