Я работаю над своего рода инструментом миграции баз данных.Моя компания, занимающаяся обучением программированию, полностью переделывает свою базу данных, и я создаю приложение, которое может импортировать файлы CSV, беря только необходимые данные и помещая их в базу данных.Я хочу сделать это повторно используемым, насколько это возможно, и не нужно создавать новые объекты для каждого типа данных каждый раз, когда я импортирую новый CSV.Я работаю над перемещением этого (что у меня уже есть) в приложение Windows Forms, которое позволит мне импортировать файл CSV, а затем перечислить свойства по порядку, затем нажать кнопку, чтобы обработать их, и после этого иметь базу данныхТаблица построена с соответствующей информацией.
Если у вас есть какие-либо советы о том, как это сделать, пожалуйста, дайте мне знать.
static void Main(string[] args)
{
var count = 0;
using(var reader = new StreamReader(@"C:\Users\Tim\Documents\FullData.csv"))
{
while (!reader.EndOfStream)
{
var str = reader.ReadLine();
count = count + 1;
var IndividualProperties = str.Split(',');
StudentEntity StudentData = new StudentEntity()
{
Id = count,
FirstName = IndividualProperties[1],
LastName = IndividualProperties[0],
Email = IndividualProperties[2],
PhoneNumber = IndividualProperties[3],
Address = IndividualProperties[4],
City = IndividualProperties[5],
Gender = IndividualProperties[8]
};
AddUserToDb(StudentData, "StudentData");
Console.WriteLine(str);
}
}
Console.WriteLine("Total Students Saved: " + count);
}
static void AddUserToDb(StudentEntity Object, string DatabaseName)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
var commandString = "INSERT INTO " + DatabaseName + "(FirstName,LastName,Email,PhoneNumber,Address,City,Gender,Id) VALUES(@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)";
connection.Open();
try
{
using (SqlCommand command = new SqlCommand(commandString, connection))
{
command.Parameters.Add("@p1", SqlDbType.Text).Value = Object.FirstName;
command.Parameters.Add("@p2", SqlDbType.Text).Value = Object.LastName;
command.Parameters.Add("@p3", SqlDbType.Text).Value = Object.Email;
command.Parameters.Add("@p4", SqlDbType.Text).Value = Object.PhoneNumber;
command.Parameters.Add("@p5", SqlDbType.Text).Value = Object.Address;
command.Parameters.Add("@p6", SqlDbType.Text).Value = Object.City;
command.Parameters.Add("@p7", SqlDbType.Text).Value = Object.Gender;
command.Parameters.Add("@p8", SqlDbType.Int).Value = Object.Id;
command.ExecuteNonQuery();
}
}
catch
{
Console.WriteLine("Something went wrong");
}
}
}