2016-04-26 30 views
1

我已經有了一個設置有點像數據庫的CSV。C#從CSV數據庫中讀取出現特定數字

數據如下

ID,名字,姓氏等

我需要能夠開始從用戶輸入的讀取身份證號碼,記錄該數據集,然後將其保存爲字符串。

我可能會用完全錯誤的方式去解決這個問題,這對編碼來說很新穎。任何輸入是讚賞!

string sid = txtsid.Text; //< This is the user entered data 

     string filePath = Server.MapPath("~/App_Data/employees.csv"); 
     string[] empData = System.IO.File.ReadAllLines(filePath); //*READ Employee CSV AND STORE *// 
     var emps = from line in empData 
        let data = line.Split('|') 
        where line.id == sid //< this doesn't work 
        select new { id = data[0], dob = data[1], firstName = data[2], lastName = data[3], gender = data[4], joindate = data[5], }; 


     foreach (var s in emps) 

     { 
      lblResult.Text = s.id; 
      Console.WriteLine("[{0}] {1} {2}", s.id, s.firstName, s.lastName); 

     } 
+0

http://stackoverflow.com/questions/1941392/are-there-any-csv-readers-writer-libraries-in -C。或http://www.codeproject.com/Articles/86973/C-CSV-Reader-and-Writer。 – ManoDestra

+0

我的建議:不要重新發明輪子。這個車輪已經被重新創造了數十億次。除了已經提到的鏈接之外,還有另外一個:http://nugetmusthaves.com/Tag/csv查找已經有人寫過的圖書館。 – granadaCoder

回答

2
where line.id == sid //< this doesn't work 

不,它不會

爲什麼呢?

行只是1個字符串,字符串沒有屬性id。

數據是分割字符串,所以你的測試可能是在那個,因爲你的分割項不會有名稱,它會是數據[0]。然而

標識想像線是

where data[0] == sid 

可能會工作