Перебор всех файлов из папки и их запись в таблицу - 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();
}
}
}