检索c#.net中的checkboxlist值

时间:2012-12-30 16:46:21

标签: sql-server-2005 ado.net

我想从我的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, Occupat‌ion, Age, Sex, Chief_Complain,
    Investigation_Result, PastHistoryAny, Physical_Examinati‌on,
    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

1 个答案:

答案 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);
}