I'm trying to import data into a SQL Server database from a .csv file. I have just one problem: for the money row, I am throwing Format.Exception due to wrong format of money variable.
I tried to convert to double I change the period instead of comma, I change in split(); method also semicolon ; instead of comma , but the exception didn't go away. Does anyone know what to do about this?
It is just an experiment.
My .csv file looks like this:
Database table's columns are:
name, second_Name, nickname, money Code:
public void Import() { SqlCommand command = null; var lineNumber = 0; using (SqlConnection conn = DatabaseSingleton.GetInstance()) { // conn.Open(); using (StreamReader reader = new StreamReader(@"C:\Users\petrb\Downloads\E-Shop\E-Shop\dataImport.csv")) { while (!reader.EndOfStream) { var line = reader.ReadLine(); if (lineNumber != 0) { var values = line.Split(','); using (command = new SqlCommand("INSERT INTO User_Shop VALUES (@name, @second_Name, @nickname, @money", conn)) { command.Parameters.Add(new SqlParameter("@name", values[0].ToString())); command.Parameters.Add(new SqlParameter("@second_Name", values[1].ToString())); command.Parameters.Add(new SqlParameter("@nickname", values[2].ToString())); command.Parameters.Add(new SqlParameter("@money", Convert.ToDecimal(values[3].ToString()))); command.Connection = conn; command.ExecuteNonQuery(); } } lineNumber++; } } conn.Close(); } Console.WriteLine("Products import completed"); Console.ReadLine(); } 
.ToString("C", CultureInfo.CurrentCulture)