0

我想从我的 SQL Server 2005 数据库中检索 checkboxlist 值,其中我有一个表,其中的列car包含 n 个值,例如BMW,Jaguar,Royal.

现在我想为复选框列表中的特定复选框检索它们;我试过了:

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
4

1 回答 1

0

好的,现在我们有一个有用的错误消息(不仅仅是它不起作用),我们可以提供帮助。

错误消息似乎很清楚:

'string.Split(params char[])'的最佳重载方法匹配有一些无效参数

因此,请检查您的调用.Split()- 正如您从错误消息中看到的那样,它的分隔符需要一个或多个字符。但是您没有提供一个或多个字符-您传递的是一个字符串,而这不是一个字符....

checkedListBox1.Text = sdr.GetString(16).Split(","); 

因此,将您的调用更改为实际将 a,作为字符传递(在 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);
}
于 2012-12-30T17:24:56.013 回答