Zapis DataTable do bazy SQLite
:: Projekt "Madagaskar" :: 4.INNE :: 1.C#: ogólnie
Strona 1 z 1
Zapis DataTable do bazy SQLite
Witam, od jakiegoś czasu mam problem z przeniesieniem danych które mam w DataGridView do tabeli bazy SQLite. Już w zasadzie skończyły mi się pomysły, może mieliście z tym do czynienia / wiecie jak to zrobić?
Jak dotychczas udało mi się stworzyć takie coś:
Tu jeszcze daje kod tworzenia tabeli:
Pzdr
Jak dotychczas udało mi się stworzyć takie coś:
- Kod:
SQLiteConnection m_dbConnection;
DataTable dane = new DataTable("tab");
m_dbConnection = new SQLiteConnection("Data Source=database.sqlite;Version=3;");
m_dbConnection.Open();
dane = dataGridView.DataSource as DataTable;
//dataGridView.EndEdit();
SQLiteDataAdapter adapter = new SQLiteDataAdapter("SELECT * FROM tab", m_dbConnection);
SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
adapter.Update(dane);
- Kod:
Brak elementu DataColumn 'ilosc' w elemencie DataTable 'tab' dla elementu SourceColumn 'ilosc'.
Tu jeszcze daje kod tworzenia tabeli:
- Kod:
sql = "CREATE TABLE " + nazwa + " (id INTEGER PRIMARY KEY ASC, lp INTEGER,nsn TEXT, jim TEXT, pn TEXT, nazwa TEXT, jm TEXT, ilosc INTEGER, szafa TEXT, miejsce TEXT, krytyk INTEGER, ksiazka TEXT, karta INTEGER)";
try
{
command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
System.Console.WriteLine("Pomyślnie utworzono tabelę");
}
catch (Exception e) { System.Console.WriteLine(e.ToString()); }
Pzdr
Fitter- Liczba postów : 12
Join date : 26/06/2013
Re: Zapis DataTable do bazy SQLite
Na prawdę nie macie pomysłu co i jak?
Problem w pewnym sensie rozwiązałem, mianowicie:
Najpierw wykasowałem zawartość tabeli zapytaniem:
Całość działa, ale nie tak szybko jak bym tego chciał, ok 1k rekordów zapisuje się mniej więcej 15sekund. Wg. mnie powinno to następować trochę szybciej.
Dalej szukam rozwiązania podobnego np. do tego jak bazę wczytuję do DataTable (używam SQLiteDataReader). Odczyt w tym przypadku trwa moment.
Problem w pewnym sensie rozwiązałem, mianowicie:
Najpierw wykasowałem zawartość tabeli zapytaniem:
- Kod:
DELETE FROM nazwa_tabeli
- Kod:
insert into nazwa_tabeli values (wart1, wart2, wart3)
Całość działa, ale nie tak szybko jak bym tego chciał, ok 1k rekordów zapisuje się mniej więcej 15sekund. Wg. mnie powinno to następować trochę szybciej.
Dalej szukam rozwiązania podobnego np. do tego jak bazę wczytuję do DataTable (używam SQLiteDataReader). Odczyt w tym przypadku trwa moment.
Fitter- Liczba postów : 12
Join date : 26/06/2013
:: Projekt "Madagaskar" :: 4.INNE :: 1.C#: ogólnie
Strona 1 z 1
Pozwolenia na tym forum:
Nie możesz odpowiadać w tematach