拆分字符串并在 C# 中添加组合框

Split String and add in combobox in c#

我正在从数据库获取数据并添加到 combobox.The 字符串包含带逗号的名称列表。

DataRow dr = newdt.Rows[i];
TraineeCombo.Items.Add(dr["Trainee"].ToString());

它工作正常,但我想拆分字符串并将每个项目添加到组合框。我尝试了以下方法。

 DataRow dr = newdt.Rows[i];
 string TempTr = dr["Trainee"].ToString();
 string[] result = TempTr.Split(new Char[] {','});
 foreach (string s in result)
      {
        if (s.Trim() != "")
        TraineeCombo.Items.Add(s);
       }

第二种方法:

String TempTr = dr["Trainee"].ToString();
TraineeCombo.Items.AddRange(TempTr.Split(','));

但两种方法都显示错误

无法将字符串转换为 char[] 和无效参数。 我从msdn.How那里得到了这段示例代码,我可以解决它吗?

试试这个

DataRow dr = newdt.Rows[i];
string TempTr = dr["Trainee"].ToString();
string[] result = TempTr.Split(',');
foreach (string s in result)
  {
    if (s.Trim() != "")
    TraineeCombo.Items.Add(s);
   }

如果你的数据库是 "str" 试试这个:

 string str= "Landon,Paris,Tehran,OtherCity";
        var strsplited = str.Split(",".ToCharArray());


        foreach (var VARIABLE in strsplited)
        {
            comboBox1.Items.Add(VARIABLE);
        }

使用

Convert.ToString(dr["Trainee"]) 

您可能收到 InvalidCastException。一个简单的原因是 Convert 使代码更具可读性,阅读您的代码的人将准确理解您的意图。 另一种解决方案是使用 TryParse。 你的拆分也应该是这样的:

yourString.Split(',')

检查您的数据库列值是否为空...

        sDataRow dr = newdt.Rows[i];

        object value = dr["Trainee"];
        if (value != DBNull.Value)
        {
            string TempTr = dr["Trainee"].ToString();
            string[] result = TempTr.Split(',');
            foreach (string s in result)
            {
                if (s.Trim() != "")
                    TraineeCombo.Items.Add(s);
            }
        }