OLEDB에서 CSV, txt 액세스

최근 데이터 가져오기 기능을 연구한 결과 Excel 파일이 좀 크고 크기 제한이 있는 상황에서 업로드된 데이터가 CSV 파일보다 훨씬 적다는 것을 발견했다.CSV 파일은 제가 알기로는 그 본질은 txt 파일과 큰 차이가 없습니다. (이점은 깊이 이해하지 못했습니다. 허허, 여러분이 가르쳐 주신 것을 환영합니다) 하지만 Excel 도구로 열 수 있어서 편집하기에 비교적 편리합니다.그리고 기본 열기 방식은 Excel입니다. 물론 오피스 excel을 설치한 상태입니다.
CSV는 txt와 마찬가지로 우리가 프로그램에서 그에 대한 접근 방식을 볼 수 있다. 하나는 흐르는 방식으로 읽는 것이고, 다른 하나는 데이터베이스로 읽는 것이다.
텍스트 흐름으로 형식이 없는 내용을 읽는 것은 의심할 여지가 없다.하지만 지금 우리가 말하는 것은 형식적인 내용이기 때문에 텍스트 흐름으로 읽는 것은 좀 번거롭다.
내용 형식이 있는 CSV와 txt 파일에 접근하는 것은 텍스트 드라이브를 사용하는 것이 편리하지만 제한이 있습니다. 그것은 select와 insert만 있고 기록에 대해 다른 조작을 할 수 없다는 것입니다. 본 장 맨 뒤에 각종 드라이브가 기록에 대한 방문 권한을 첨부하고 관심 있는 친구는 가볼 수 있습니다.
형식, 이것은 매우 중요한 점이다. 반드시 합법적인 형식이 있어야 한다. 필드와 필드 사이는 쉼표로 구분하고 첫 번째 줄은 열의 이름으로 기록해야 한다. 다음과 같다.
이름, 나이, 성별'장삼', 13, 남자'이사', 14, 여자'왕오', 15, 남자'조육', 16, 여자'탁칠', 17, 여자'능맏이', 11,'남'
아래에 나의 코드를 동봉하다

  
  
  
  
  1. #region OLEDB CSV、txt  
  2.     /// <summary>  
  3.     ///   
  4.     /// </summary>  
  5.     string ConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;'";  
  6.     /// <summary>  
  7.     ///  CSV  
  8.     /// </summary>  
  9.     /// <param name="directory"> </param>  
  10.     /// <param name="fileName"> ( )</param>  
  11.     /// <param name="tj"> ( :"WHERE   = ' '", null)</param>  
  12.     /// <returns></returns>  
  13.     public DataSet SelectCSV(string directory, string fileName, string tj)  
  14.     {  
  15.         DataSet ds = new DataSet();  
  16.  
  17.         OleDbDataAdapter adapter = new OleDbDataAdapter(string.Format("select * from [{0}] " + (tj != null ? tj : ""), fileName), string.Format(ConnStr, directory));  
  18.         adapter.Fill(ds);  
  19.         return ds;  
  20.     }  
  21.     /// <summary>  
  22.     ///  CSV  
  23.     /// </summary>  
  24.     /// <param name="directory"> </param>  
  25.     /// <param name="fileName"> ( )</param>  
  26.     /// <param name="values"> ( "' ',20,' '")</param>  
  27.     /// <returns></returns>  
  28.     public int InsertCSV(string directory, string fileName, string values)  
  29.     {  
  30.         int row = 0;  
  31.         using (OleDbConnection conn = new OleDbConnection(string.Format(ConnStr, directory)))  
  32.         {  
  33.             conn.Open();  
  34.             string sql = "INSERT INTO [{0}] VALUES({1})";  
  35.             OleDbCommand comm = new OleDbCommand(string.Format(sql, fileName, values), conn);  
  36.             row = comm.ExecuteNonQuery();  
  37.         }  
  38.         return row;  
  39.     }  
  40.     #endregion 

 
[첨부: Provider SELECT INSERT UPDATE DELETE SQLOLEDB Y Y Y Y Y Y Jet/Access Y Y Y Y Jet/Excel Y Y Y Y Y Y N Jet/Text Y  Y         N          N    Jet/Lotus          Y            Y         Y          N    Jet/HTML          Y            N         N          N    Jet/dBase         Y            Y         Y          Y    Jet/Paradox      Y            Y         Y          Y

좋은 웹페이지 즐겨찾기