Перебор всех файлов из папки и их запись в таблицу - C#
Формулировка задачи:
using System; using System.Data; using Microsoft.VisualBasic.FileIO; using ReadCSVFile; using System.Data.SqlClient; using System.Collections.Generic; using System.IO; namespace ReadCSVFile { static class Program { static void Main() { List<string> filesname = Directory.GetFiles(@"C:\Users\kabudasay\Desktop\cisco\").ToList<string>(); string fileDir = (filesname[0]); string csv_file_path = fileDir; DataTable csvData = GetDataTabletFromCSVFile(csv_file_path); Console.WriteLine("Rows count:" + csvData.Rows.Count); Console.ReadLine(); } private static DataTable GetDataTabletFromCSVFile(string csv_file_path) { DataTable csvData = new DataTable(); try { using (TextFieldParser csvReader = new TextFieldParser(csv_file_path)) { csvReader.SetDelimiters(new string[] { "," }); csvReader.HasFieldsEnclosedInQuotes = true; string[] colFields = csvReader.ReadFields(); foreach (string column in colFields) { DataColumn datecolumn = new DataColumn(column); datecolumn.AllowDBNull = true; csvData.Columns.Add(datecolumn); } while (!csvReader.EndOfData) { string[] fieldData = csvReader.ReadFields(); //Making empty value as null for (int i = 0; i < fieldData.Length; i++) { if (fieldData[i] == "") { fieldData[i] = null; } } csvData.Rows.Add(fieldData); } } } catch (Exception ex) { } return csvData; } // Copy the DataTable to SQL Server using SqlBulkCopy function static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData) { using(SqlConnection dbConnection = new SqlConnection("Data Source=MySqlServer; Initial Catalog=MyTable; Integrated Security=SSPI;")) { dbConnection.Open(); using (SqlBulkCopy s = new SqlBulkCopy(dbConnection)) { s.DestinationTableName = "my_csv_table"; foreach (var column in csvFileData.Columns) s.ColumnMappings.Add(column.ToString(), column.ToString()); s.WriteToServer(csvFileData); } } } } }
как правильно оформить функцию импорта направьте пожалуйста Экспорт получается великолепно ! а вот импорт беда и плюс хотел узнать можно ли читать csv с определенного места и писать его с этого ж определенного места
че т просмотров много а ответить ни хто не может
Решение задачи: «Перебор всех файлов из папки и их запись в таблицу»
textual
Листинг программы
namespace MyApp { class Program { static void Main(string[] args) { const Int32 Sing = 253775808; // hash.GetHashCode(); using (SqlConnection sqlConn = new SqlConnection(@"Data Source=sql-izh-inst-1.mehanika.ru;Initial Catalog=Billing1;Trusted_Connection=yes;")) { foreach (string fileName in Directory.EnumerateFiles(@"C:\Users\kabudasay\Desktop\cisco")) { sqlConn.Open(); SqlCommand sqlCmd = new SqlCommand( string.Format("BULK INSERT dbo.Billing_table FROM '{0}' WITH (FIELDTERMINATOR = ',', FIRSTROW=3)", fileName), sqlConn ); int rowsAffected = sqlCmd.ExecuteNonQuery(); Console.Write("Total {0} Rows Inserted!", rowsAffected); } sqlConn.Close(); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д