我正在编写一个包含checkListBox的Windows窗体应用程序。我有一个连接到我的sql db的数据绑定的checkListBox值。我想编写一个循环来遍历已检查项目列表并获取其值(而不是索引)。我想知道有没有办法像comboBox.SelectedValue那样做?
foreach(var item in checkListBox.CheckedItems){
//get the value of that
string query = select * from employeeId where '"+checkListBox.SelectedValue+"'
}
答案 0 :(得分:1)
您可以尝试这样:
foreach(object item in checkListBox.CheckedItems)
{
DataRowView dt = item as DataRowView;
string str = dt["nameHere"];
// some code
}
答案 1 :(得分:0)
您应该将项目转换为相关类型(DataRowView?)
foreach(var item in checkListBox.CheckedItems){
var val = item as DataRowView;
// retrieving the relevant values
}
答案 2 :(得分:0)
你也可以采取其他方式
List<object> _checkedItems = checkedListBox1.CheckedItems.OfType<object>().ToList();
这将为您提供所有选中的项目。如果你想将它传递给sql查询,那么你可以做类似的事情
string delimeter = "','";
string _selectedItems ="'"+ _checkedItems.Aggregate((i, j) => i + delimeter + j).ToString()+"'";
并在您的SQL查询中传递它
string query = select * from employeeId where somevalue in ("+_selectedItems +")
答案 3 :(得分:0)
你可以试试这个
foreach(var item in checkListBox.CheckedItems){
var value = (item as ListItem).Value;
}
答案 4 :(得分:0)
CheckedListBox
中的项目并检查列表中的所有其他项目。使用Items属性获取CheckedListBox.ObjectCollection以获取项目数。
使用SetItemCheckState
和SetItemChecked
方法设置项目的检查状态。对于要检查的每个其他项,调用SetItemCheckState将CheckState设置为Indeterminate,而在另一项上调用SetItemChecked以将checked状态设置为Checked。
//checkedListBox1.SetItemChecked(a,true);
for ( int i = 0; i < checkedListBox1.Items.Count; i++ )
{
if(checkedListBox1.GetItemCheckState(i) == CheckState.Checked)
{
string query = select * from employeeId where '" + checkedListBox1.Items[i].ToString() + "';
}
}