2013-10-24 1 views

ответ

0

Привет учитывая, что вы хотите экспортировать datatable в .csv файл, вы можете сделать это таким образом:

var lines = new List<string>(); 

string[] columnNames = dataTable.Columns.Cast<datacolumn>(). 
            Select(column => column.ColumnName). 
            ToArray(); 

var header = string.Join(",", columnNames); 
lines.Add(header); 

var valueLines = dt.AsEnumerable() 
        .Select(row => string.Join(",", row.ItemArray));    
lines.AddRange(valueLines); 

File.WriteAllLines("excel.csv",lines); 

И для импорта .csv файла в sql здесь есть фрагмент кода на первый, а затем прочитать файл .csv записать его в datatable, а затем вы можете сохранить этот DataTable в SQLServer с использованием любой технологии вы любите (ado.net , linqtosql , entityframework , etc)

using (CachedCsvReader csv = new CachedCsvReader(new StreamReader(filePath), true)) 
{ 
    DataTable Table = new DataTable(); 
    Table.Load(csv); 
} 

Takin г взглянуть на эти ссылки также могут быть полезны:

http://www.codeproject.com/Articles/30705/C-CSV-Import-Export 
http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader 
http://dotnetawesome.blogspot.com/2013/11/how-to-import-export-database-data-from.html 
0
/* 
* Loads the csv file into a DataSet. 
* 
* If the numberOfRows parameter is -1, it loads all rows, otherwise it 
* loads the first specified number of rows (for preview) 
*/ 

public DataSet LoadCSV(int numberOfRows) 
{ 
    DataSet ds = new DataSet(); 
    try 
    { 
     // Creates and opens an ODBC connection 
     string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; 
      Dbq=" + this.dirCSV.Trim() + "; 
      Extensions=asc,csv,tab,txt;Persist Security Info=False"; 
     string sql_select; 
     OdbcConnection conn; 
     conn = new OdbcConnection(strConnString.Trim()); 
     conn.Open(); 

     //Creates the select command text 
     if (numberOfRows == -1) 
     { 
      sql_select = "select * from [" + 
        this.FileNevCSV.Trim() + "]"; 
     } 
     else 
     { 
      sql_select = "select top " + numberOfRows + 
       " * from [" + this.FileNevCSV.Trim() + "]"; 
     } 

     //Creates the data adapter 
     OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn); 

     //Fills dataset with the records from CSV file 
     obj_oledb_da.Fill(ds, "csv"); 

     //closes the connection 
     conn.Close(); 
    } 
    catch (Exception e) //Error 
    { 
     MessageBox.Show(e.Message, "Error - LoadCSV", 
       MessageBoxButtons.OK,MessageBoxIcon.Error); 
    } 
    return ds; 
} 
Смежные вопросы