c# - 从checkedlistbox获取CheckedItems字符串值
问题描述
我想获取变量上的checkedlistBox值我的代码在下面有人可以帮助我吗
private void CheckPreviousTxn_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
int selected = CheckPreviousTxn.SelectedIndex;
string selecteditem1 = CheckPreviousTxn.CheckedItems.ToString();
if (selected != -1)
{
foreach (string slecteditem in CheckPreviousTxn.CheckedItems)
{
con = new SqlConnection(connectionpath);
cmd = new SqlCommand("select QTNCode as 'QTN Code',STKCODE as 'Item Code',STKDESCP as 'Item Name',Quantity,BaseUnit as 'Unit',Rate,DiscountAmount as 'Discount',Amount,VatPercentage as 'VAT %',TotalTaxAmount as 'VAT Amt' from Tbl_QTNDetail where QTNCode ='" + slecteditem + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GrdQtnDetail.DataSource = dt;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我收到以下异常
无法将“System.Data.DataRowView”类型的对象转换为“System.String”类型
我得到了checklistBox
value = {System.Windows.Forms.CheckedListBox, Items.Count: 13, Items[0]:QTN0001}
解决方案
CheckedItems
不是类型的集合String
。您需要使用ListItem
或使用Object
类似:
foreach (ListItem selecteditem in CheckPreviousTxn.CheckedItems)
{
string itemValue = selectedItem.Value;
string itemText = selectedItem.Text;
string item = selectedItem.ToString();
// use it in query
}
或者:
foreach(object itemChecked in checkedListBox1.CheckedItems)
{
string selectedItem= itemChecked.ToString();
}
请参阅此处的文档以供参考。
边注:
不要对查询进行字符串连接。考虑使用参数化查询,因为您的应用程序容易受到带有字符串连接查询的 sql 注入的影响。
推荐阅读
- linux - 如何在没有 IP 地址的接口上接收数据包?
- javascript - 如何让 .flowconfig 从文件夹中读取类型?
- python - Seaborn 不接受日期时间值
- excel-formula - 需要帮助计算 ID 在按月列中重复的次数
- networking - 如何确定 windows server 2016 上的总网络带宽使用情况?
- android - Android connectedAndroidTest failed with com.android.ddmlib.InstallException: Unknown failure (Error: failed to write;(No such file or directory))
- google-sheets - 谷歌查询功能错误过滤数据
- javascript - 如何在多个动态元素上使用 Jquery .on() 方法?
- ruby-on-rails - 如何从下拉选择器中渲染同一模型的不同实例?
- php - GMAIL 在使用 file_get_contents 时显示消息被剪裁