2016-09-14 2 views
0

У меня есть таблица под названием statelist который выглядит следующим образом:Как добавить записи в таблицу из текстового файла?

abbrev nvarchar(2); 
name nvarchar(50); 

У меня есть текстовый файл с именем state_list.txt, который имеет список государств, в следующем формате:

'AL','Alabama' 
'AK','Alaska' 
'AR','Arkansas' 

Я хочу, чтобы получить данные из текстового файла в таблицу statelist. Есть ли какой-нибудь SQL-код или другой код для этого?

+0

Это является CSV, разобрать его или использовать инструмент, как CSVHelper вернуть типизированный список, или загрузить его непосредственно к datatable with OLEDB – Plutonix

+0

Дайте * что-то попробуйте и поставите вопрос, когда вы застряли – Plutonix

+0

string [] parts = Textreader.Readline(). Split (','); com.Parameter.AddWithValue ("@ состояние", части [0]); com.Parameter.AddWithValue ("@ State_Name", части [1]); Поиск этих классов даст вам представление о том, как их реализовать. Если вы застряли, опубликуйте свой код и конкретную проблему, с которой вы столкнулись. –

ответ

0

Один из способов, который я могу представить, - прочитать каждую строку из текстового файла с помощью ReadLine(), а затем использовать Split(',') в этой строке, чтобы получить аббревиатуру и имя в массиве строк, а затем вы можете легко добавить их в свою базу данных в в то время как цикл.

1

Ну, вы не указали такие вещи, как ваша база данных и т. Д., Но это было бы моим лучшим предположением. Я создаю это для базы данных MsSql, но вы можете настроить ее для mySql несколькими простыми шагами (сначала установите mySQL-коннектор). У меня нет базы данных MsSQl в моем распоряжении, поэтому я не пробовал ее дома, но она должна работать именно так. Ofcourse редактировать строку соединения, так что подходит к базе данных

 string fileName = "state_list.txt"; 
     var lines = File.ReadLines(fileName); 

     Dictionary<string,string> splitted = new Dictionary<string,string>(); 
     foreach (var line in lines) 
     { 
      string[] splitter = line.Split(','); 
      splitted.Add(splitter[0], splitter[1]); //Add eatch splitted line to dictionary so you can use key and value to insert into table 
     } 


     string connStr ="server = localhost; user = root; database = yourdb; port = 3306; password = xxxxxxxxx;"; // CREATE CONNECTION WITH YOUR DATABASE INFORMATION 
     SqlConnection conn = new SqlConnection(connStr); 
     try 
     { 
      conn.Open(); 
      SqlCommand comm = conn.CreateCommand(); 
      comm.CommandText = "INSERT INTO state_list(code,area) VALUES(@code, @area)"; 

      foreach (KeyValuePair<string, string> pair in splitted) 
      { 
       comm.Parameters.Add("@code", pair.Key); 
       comm.Parameters.Add("@areas", pair.Value); 
       comm.ExecuteNonQuery(); // INSERT EACH PAIR INTO DATABASE 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
     } 
     conn.Close(); //CLOSE CONNECTION 
0

(1) Разбираем файл .txt и (2) добавить записи в базу данных. Вы можете использовать инфраструктуру сущности или любой другой ORM или использовать ADO, например, @Jurriaan.

0

Если вы используете Entity Framework, вы можете использовать этот подход.

using(var context = new YourContext()) 
    { 
     List<YourEntity> entities = new List<YourEntity>(); 
     File.ReadAllLines("PathToFile") 
      .ToList() 
      .ForEach(s => 
      { 
       string[] split = s.Split(','); 
       someList.Add(new YourEntity(split[0], split[1])); // Or set properties if not using a constructor. 
      }); 

     context.YourTable.AddRange(entities); 
     context.SaveChanges(); 
    } 
Смежные вопросы