2015-04-02 60 views
0

雙引號這是我從一個文本文件進入mysql數據庫enter image description here如何忽略文本文件

我想這是

Product_Name Product_Price QTY 
Pepsi  30   64 
Coke  35   24 
Sandwich 60   14 

這是代碼。

try 
      { 
       var files = from file in Directory.EnumerateFiles(@"C:\Users\K\Desktop\New folder", "*.txt", SearchOption.AllDirectories) 
          from line in File.ReadLines(file) 
          select new 
          { 
           File = file, 
           Line = line 
          }; 

       foreach (var f in files) 
       { 
        Console.WriteLine("{0}\t{1}", f.File, f.Line); 
        using (StreamReader sr = new StreamReader(f.File)) 
        { 
         foreach (string line in File.ReadAllLines(f.File).SkipWhile(x => !x.Contains("[Start]"))) 
         { 

          string readLine; 
          do 
          { 
           readLine = sr.ReadLine(); 
           string[] readLineSplit = readLine.Split('|'); 

           if(readLineSplit.Length > 1) 
           { 
            using (MySqlConnection con = new MySqlConnection(@"server=localhost;database=test;uid=root;pwd=pw;")) 
            { 
             con.Open(); 
             MySqlCommand cmd = new MySqlCommand("INSERT INTO Products(Product_Name, Product_Price, QTY) VALUES (@Product_Name, @Product_Price, @QTY)", con); 
             cmd.Parameters.AddWithValue("@Product_Name", readLineSplit[0].ToString()); 
             cmd.Parameters.AddWithValue("@Product_Price", readLineSplit[1].ToString()); 
             cmd.Parameters.AddWithValue("@QTY", readLineSplit[2]); 
             cmd.ExecuteNonQuery(); 
            } 
           } 


          } while (!sr.EndOfStream); 
         } 

問題2:我有兩個文本文件在我的路徑,任何想法爲什麼只有一個文本文件插入到我的數據庫? enter image description here

+0

問每個問題 – 2015-04-02 07:04:02

+1

1個提問除了你有我建議尋找到[Microsoft.VisualBasic.FileIO.TextFieldParser]的答案(https://msdn.microsoft.com/en-我們/庫/ MS12 8081(v = vs.110).aspx),因爲您只需指定[HasFieldsEnclosedInQuotes](https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.hasfieldsenclosedinquotes(v = vs。 110)的.aspx)。 – Filburt 2015-04-02 07:16:26

+0

要回答問題2,我們需要查看發生了什麼,直到「catch」 - 很可能是在訪問第二個文件時壓制引發的異常。你應該能夠通過逐步使用調試來弄清楚什麼是錯的。 – Filburt 2015-04-02 07:32:15

回答

1

問題1,刪除引號,更換不必要ToString()Trim('\"')

//readLineSplit[0].ToString() 
readLineSplit[0].Trim('\"') 
+0

是的這個作品謝謝你。 – 2015-04-02 07:08:36

0

我不知道你的文件內容的樣子,但你不能只更換「標誌替換爲?

readLineSplit[0].ToString().Replace("\"", ""); 
+0

這個作品也謝謝你。 – 2015-04-02 07:08:43