如何将拆分的字符串插入到不同的行中

本文关键字:字符串 拆分 插入 | 更新日期: 2023-09-27 18:09:48

我试图插入插入下面的数据作为我的要求。例如:我的excel表格如下:

  id    name  codes                    
  1       a    12
  2       b    13,14,15
  3       c    16-19

我的要求如下:

 id     name   codes
  1       a      12        
  2       b      13
  2       b      14
  2       b      15
  3       c      16
  3       c      17
  3       c      18                
  3       c      19

我使用c#。谁能帮我....THNX提前。

我代码:

for (rCnt = 2; rCnt <= range.Rows.Count; rCnt++)
        {
            cmd = "insert into " + tablename + " values (";

            effective_date = VerifyDateTime(range.Cells[rCnt, 7].Value);
            destination = (string)(range.Cells[rCnt, 1] as Excel.Range).Value2;
            prefix = range.Cells[rCnt, 3].Value.ToString();
            codes = range.Cells[rCnt, 2].Value.ToString();
            level = range.Cells[rCnt, 5].Value.ToString();
            rate = range.Cells[rCnt, 4].Value.ToString();
            change = range.Cells[rCnt, 6].Value.ToString();
            company_id = cmbcompanyid.SelectedItem.ToString();

            string s = range.Cells[rCnt, 6].Value.ToString();
            List<string> l = new List<string>(s.Split(';', '-'));
            int le = 0;
            for (le = 0; le <= l.Count; le++)
            {


                change = l[le];

                cmd = cmd + "'" + destination + "','" + codes + "','" + prefix + "','" + rate + "','" + level + "','" + change + "','" + effective_date + "','" + company_id + "')";

                //       cmd = cmd + "'" + destination + "','" + codes + "','" + prefix + "','" + rate + "','" + level + "','" + change + "','" + effective_date + "','" + company_id + "')";

                cmd = ReplaceSpecialCharacters(cmd);
                MySqlCommand sqlCmd = new MySqlCommand(cmd, sqlCon);
                var i = sqlCmd.ExecuteNonQuery();
            }
        }

如何将拆分的字符串插入到不同的行中

没有内置的方法可以做到这一点,但是您自己可以很容易地做到:

  1. 拆分,上的字符串以获得单独的值
  2. -上拆分结果以获得范围限制。一个结果=无范围;两个结果=下限和上限,因此发出两者之间的所有数字。

这里使用的主要方法是. split()。

完整的实现留给读者作为练习:-)

编辑
注意,您将一个原始值转换为潜在的许多新值。一个'insert'不足以处理一个输入行

您必须解析字符串,如下所示:

string[] items = value.Split(",");
foreach (string item in items) {
  if (item.Contains("-")) {
    string[] parts = item.Split("-");
    int min = Int32.Parse(parts[0]);
    int max = Int32.Parse(parts[1]);
    for (int i = min; i <= max; i++) {
      // add the value in i to the data
    }
  } else {
    // add the value in item to the data
  }
}