2014-12-22 4 views
0

Я пишу C# приложениесоздания локальной базы данных в C# A

Это приложение форума проверочного

импортирует большой файл данных в виде CSV-файла

Этот файл выбирается пользователем с помощью формы

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

Я использую Visual Studio 2012

Я никогда установки в базу данных SQL раньше и имеют лишь ограниченный опыт использования SQL на существующих базах данных

Моя попытка до сих пор:

  1. Решение исследователь> Добавить новый файл> Локальная база данных (SDF-файл)
  2. Проводник баз данных> Таблицы> Создание таблицы
  3. Я тогда добавил имена столбцов для всех полей, устанавливающих один как мой первичный ключ
  4. я попытался добавить один набор данных в моей таблице данных без везения

string dbfile = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\MyDatabase.sdf"; SqlCeConnection sqlConnection = new SqlCeConnection("datasource=" + dbfile);

SqlCeDataAdapter sqlAdapter = new SqlCeDataAdapter("select * from MyTable", sqlConnection); 
AMCCoreSignalsDBDataSet sqlData = new AMCCoreSignalsDBDataSet(); 
sqlAdapter.Fill(sqlData); 
string strCSVDataLine = "1,2,3,four" 
sqlData.Tables[0].Rows.Add(new object[] { strCSVDataLine }); 
sqlAdapter.Update(sqlData); 

sqlConnection.Close(); 

Этот код не работает

Как я могу использовать C# для заполнения свою базу данных с данные .csv?

Является ли мой метод неправильным/неполным?

Есть ли лучший способ сделать это?

Причина, по которой я хотел бы использовать sql, заключается в том, что имеется много данных. Я мог бы создать структуру классов, чтобы содержать данные, но это также означало бы создание множества различных функций фильтра. Какие SQL уже содержит ...

+0

вы получите ошибку или это просто не даст вам то, что вы ожидаете? – ZoomVirus

+0

Он падает. предположительно, потому что что-то не объявлено – Danaldo

+0

Чтобы найти ошибку chuck в try catch catch exception, тогда выведите пойманную информацию, пожалуйста, отправьте ее здесь – ZoomVirus

ответ

1

Проблемы были связаны с пустыми значениями, находящимися в CSV-файле

Это было мое исправление

public void Import(string csvfname) 
{ 
    string password; 
    string cacheDatabase; 
    string connectionString; 
    System.IO.StreamReader objFile; 
    string strCommand; 
    string lineHeader; 
    string line; 
    string[] arrLineData; 

    cacheDatabase = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\MyDatabase.sdf"; ; 
    password = ""; 
    connectionString = string.Format("DataSource=\"{0}\"; Password='{1}'", this.cacheDatabase, this.password); 

    objFile = new System.IO.StreamReader(csvfname); 

    lineHeader = objFile.ReadLine(); 

    while (!objFile.EndOfStream) 
    { 
     line = objFile.ReadLine(); 
     arrLineData = line.Split(','); 
     try 
     { 
      sqlConnection = new SqlCeConnection(connectionString()); 
      strCommand = "INSERT INTO MyTable VALUES ('" + arrLineData[0] + "', '" + arrLineData[1] + "', '" + arrLineData[2] + "')"; 
      SqlCeCommand sqlCommand = new SqlCeCommand(strCommand, sqlConnection); 
      sqlCommand.ExecuteNonQuery(); 
      sqlConnection.Close(); 
     } 
     catch (Exception exc) 
     { 
      MessageBox.Show("Error in Import(): " + exc.Message); 
     } 
    } 
} 
Смежные вопросы