我想从我的SQL Server 2005数据库中检索checkboxlist值,其中我有一个列car
的表,其中包含BMW,Jaguar,Royal
等n个值。
现在我想检查它们以获取checkboxlist中的特定复选框;我试过了:
for (int x = 0; x < checkedListBox1.Items.Count; x++) {
if (checkedListBox1.CheckedItems[x].ToString()) {
checkedListBox1.Text = sdr.GetString(16).Split(",");
}
}
但它不起作用。我收到以下错误:
最好的重载方法匹配'string.Split(params char [])'有一些无效的参数
这是SQL查询:
select
RegisterNo, RegistrationDate, Stimulation, PationName,
DateOfBirth, ContactNo, Occupation, Age, Sex, Chief_Complain,
Investigation_Result, PastHistoryAny, Physical_Examination,
Ref_By_Doctor, Medications, Prognosis, Electro_Therapy,
Neuro_Rehabilitation, Ortho_Rehabilitation,
Cardio_Pulmonery_Rehabilitation, Sports_Rehabilitation
from
Physio_cureTable
where
RegisterNo = @RegisterNo
and Syncoperation <> 'D
答案 0 :(得分:0)
好的,既然我们有有用的错误消息(而不仅仅是它不起作用),我们可以提供帮助。
错误信息似乎很清楚:
'string.Split(params char [])'的最佳重载方法匹配有一些无效的参数
请检查您对.Split()
的来电 - 正如您从错误消息中看到的那样,它需要一个或多个字符作为其分隔符。但是你不提供一个或多个字符 - 你传递的是字符串而不字符....
checkedListBox1.Text = sdr.GetString(16).Split(",");
相应地,将您的通话更改为实际传递,
字符(在C#中用单引号表示):
checkedListBox1.Text = sdr.GetString(16).Split(',');
然后它应该有效,我相信。
更新:您的第二个主要问题是.Split()
返回字符串数组 - 而不仅仅是一个字符串。但是您尝试将该字符串数组分配给.Text
属性,该属性只是一个字符串。那么你想用你回来的那10个字符串做什么呢?您需要找到一种方法将它们分配给可以容纳多个字符串)的内容。
如果我正确解释你的代码,你很可能想要从数据库表中加载逗号分隔的条目,然后用这些字符串填充CheckListBox.Items
- 对吗?
然后你需要这样的东西:
// clear the list of items
checkedListBox1.Items.Clear();
// parse the loaded comma-separated string into array of individual strings
string[] stringsFromDatabase = sdr.GetString(16).Split(",");
// load those strings into .Items for checklistbox
foreach(string str in stringsFromDatabase)
{
checkedListBox1.Items.Add(str);
}