[英]How to get the value of the checkListBox
我正在開發一個Windows窗體應用程序,我有一個綁定到我的數據庫的checkListBox。 我使用參數方法來存儲選定的文本。 但是,我想獲得該項的主鍵類似於comboBox.SelectedValue
而不是Text。 有辦法做到這一點嗎?
這是我的代碼。 如您所見,該參數由checkedItem文本過濾。 當我從checkListBox中選擇checkedItem時,它假設只獲取所選項。 如果我的CheckListBox項目有像Peter,Amy,Bob和David(非重復名稱)這樣的東西,這個工作正常。 但是,如果我的checkListBox具有重復的名稱。 彼得,艾米,艾米,鮑勃,大衛,艾米,這會引起問題。 如果我選擇第一個Amy,我的parameterList
將有Amy,Amy,Amy。 這是一個問題,因為我正在通過我的firstName過濾它(因此,只要它們看到相同的名稱,它就會添加到parameterList
。我真正想要的是通過諸如employeeId之類的鍵進行過濾,這樣它就不會有任何重復的名稱在我的parameterList
。(就像我從comboBox.selecteIndex
更改為comboBox.selectedValue
)。當我只選擇第一個Amy時,我的parameterList應該只有一個已檢查的Amy,但不是所有甚至沒有檢查的Amy。我想知道我是否可以從我的comboBox值`做一些像selectedValue
來映射數據庫值?幫助將不勝感激
例如,這是我的checkListBox:
[x]Amy
[]Peter
[]David
[]Amy
[]Amy
[]Jimmy
你只能看到第一個艾米被選中。 但我的參數列表有Amy,Amy,Amy,因為我正在使用firstName過濾。
string parameterList = "";
int parameterCounter = 0;
// Add a parameter placeholder for each "checked" item
for (var t = 0; t < employeeCheckListBox.CheckedItems.Count; t++)
{
parameterList += (t == 0) ? "@p" + t : ", @p" + t;
}
string query = "select distinct firstName, lastName, employeeEmail,
entryYear, leaveYear
from[employee_detail] as ed
LEFT JOIN[department_detail] as dd ON ed.employeeId = dd.employeeId
Where firstName = (" + parameterList + ")";
myCommand = new SqlCommand(query, myConn);
for (var t = 0; t < employeeCheckListBox.CheckedItems.Count; t++)
{
myCommand.Parameters.AddWithValue ("@p" + t, employeeCheckListBox.CheckedItems[t].ToString());
}
if (employeeCheckListBox.CheckedItems.Count == 0)
{
myCommand = new SqlCommand(Equery, myConn);
}
這是我想要改變的
string query = "select distinct firstName, lastName, employeeEmail,
entryYear, leaveYear
from[employee_detail] as ed
LEFT JOIN[department_detail] as dd ON ed.employeeId = dd.employeeId
Where firstName = (" + parameterList + ")";
// parameterList應該是checkListBox的選定值
嘗試使用此問題中提到的員工記錄的任何ID設置值成員
您的問題是您有多個具有相同名稱的員工,以及您的用戶如何在UI上區分它們。
因此,對此問題的一個非常簡單快速的解決方法是,更改您在復選框列表中顯示的UI上的內容。
由於每個員工都有唯一的電子郵件ID ...因此,顯示EmailID以及姓名..更改您的查詢如下..
select td.teacherId as ID, chineseName + ' ' + email as Name from[teacher_detail] .....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.