none
请问如何将没有分隔符txt内的数据写入SQL库中? RRS feed

  • 问题

  • 以下是txt的文件格式 ,每列的字数不一样,列与列之间的空格数不一样,像这样的文件如何按字段写入数据库啊?请给位大侠不吝赐教啊!先谢了!
    字段1           字段2 字段3 字段4                        字段5          字段6
    ------------------------------------------------------------------------------------------
    AAAAAAAA        AA AAAAAA AAAAAAAAAAAAA                     AAAA         AAA                  
    BBBBBBB        BB BBBBBB BBBBBBB                        BBBB         BBB                  
    CCCCCCCC        CC CCCCCC CCCCCC                                   CCCC         CCC                  
    DDDDDD        DD DDDDDD DDDDDDDDDDDDDD                   DDDD         DDD                  
    
    

    2012年4月16日 8:22

答案

  • 1)你先创建一个数据表(结构都是String类型,除了主键是自增长的之外)。

    2)然后使用String.Split的重载方法,示例代码:

    using (SqlConnection con = new SqlConnection("你的字符串链接……"))
    {
       SqlCommand cmd = new SqlCommand("insert into xxx(@字段1,……,字段N) values(@f1,@f2,……,@fn)",con);
        con.Open();
       cmd.Connection = con;
       
       string[]lines = System.IO.File.ReadAllLines("你的文件路径");
    
       //从第二行开始
       foreach(string line in lines)
       {
          //分裂字符串(以空格作为分节符,过滤空白的部分)
          string[]values = line.Split(new string[]{" "},StringSplitOptions.RemoveEmptyEntries);
    
          //进行遍历
          int i = 1;
          cmd.Parameters.Clear();
          foreach(string value in values)
          {
             cmd.Parameters.AddWithValue("@f"+i,value);
             i++;
          }
          cmd.ExecuteNonQuery();
       }
       cmd.Dispose();
       con.Close();
    }

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已编辑 ThankfulHeart 2012年4月16日 8:56
    • 已标记为答案 hkstb 2012年4月16日 9:19
    2012年4月16日 8:54

全部回复

  • 1)你先创建一个数据表(结构都是String类型,除了主键是自增长的之外)。

    2)然后使用String.Split的重载方法,示例代码:

    using (SqlConnection con = new SqlConnection("你的字符串链接……"))
    {
       SqlCommand cmd = new SqlCommand("insert into xxx(@字段1,……,字段N) values(@f1,@f2,……,@fn)",con);
        con.Open();
       cmd.Connection = con;
       
       string[]lines = System.IO.File.ReadAllLines("你的文件路径");
    
       //从第二行开始
       foreach(string line in lines)
       {
          //分裂字符串(以空格作为分节符,过滤空白的部分)
          string[]values = line.Split(new string[]{" "},StringSplitOptions.RemoveEmptyEntries);
    
          //进行遍历
          int i = 1;
          cmd.Parameters.Clear();
          foreach(string value in values)
          {
             cmd.Parameters.AddWithValue("@f"+i,value);
             i++;
          }
          cmd.ExecuteNonQuery();
       }
       cmd.Dispose();
       con.Close();
    }

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已编辑 ThankfulHeart 2012年4月16日 8:56
    • 已标记为答案 hkstb 2012年4月16日 9:19
    2012年4月16日 8:54
  • 厉害,要的就是这句:

    string[]values = line.Split(new string[]{" "},StringSplitOptions.RemoveEmptyEntries);

    万分感谢!!!!

    2012年4月16日 9:19