Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

01.01.2016, 15:29

C# Table aus .db File laden in listview

Hallo!

Ist jetzt mindestens ein Jahr her als ich zuletzt diese Seite besucht habe :D
Naja, ich habe in dieser Zeit viel gelernt (was BlueCobold sicher viel besser gefällt :thumbsup:), habe aber doch wieder ein Problem...
Ich habe eine Datei "main.db" (SQL). Ich will aus dieser den Table "Messages" lesen, aber nur diese 3 Columns: "author", "timestamp", "body_xml".
Das ganze soll dann in eine ListView reingeschrieben werden.
Habe keinen Plan wie man SQL benutzt und das dann auch noch in C# :S
Habe das via Google gefunden:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 baseDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\skype\\" + tb_dirName.Text + "\\main.db";
            MessageBox.Show(baseDir);

            // Change sql query and table name

            string sql = "Select author,timestamp,body_xml from Messages";
            SqlConnection cnn = new SqlConnection(baseDir);
            cnn.Open();
            SqlCommand cmd = new SqlCommand(sql, cnn);
            SqlDataReader Reader = cmd.ExecuteReader();

            lw_messages.Items.Clear();

            while (Reader.Read())
            {

                ListViewItem lv = new ListViewItem(Reader.GetInt32(0).ToString());
                lv.SubItems.Add(Reader.GetString(1));
                lv.SubItems.Add(Reader.GetString(2));
                lw_messages.Items.Add(lv);


            }

            Reader.Close();
            cnn.Close();
        }


Wenn ich jetzt mein Programm starte dann bekomme ich folgende Fehlermeldung:

Zusätzliche Informationen: Das Format der Initialisierungszeichenfolge stimmt nicht mit der Spezifikation überein, die bei Index '0' beginnt.

Habe keinen Plan was das genau zu bedeuten hat... xD Ist mein Ansatz überhaupt richtig?

EDIT: Bin weiter (glaub ich)

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
baseDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\skype\\" + tb_dirName.Text + "\\main.db";

            SQLiteConnection connection = new SQLiteConnection();

            connection.ConnectionString = "Data Source=" + baseDir;
            connection.Open();

            SQLiteCommand command = new SQLiteCommand(connection);

            command = new SQLiteCommand(connection);

            // Auslesen des zuletzt eingefügten Datensatzes.
            command.CommandText = "SELECT author, timestamp, body_xml FROM Messages";

            SQLiteDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine("Dies ist der {0}. eingefügte Datensatz mit dem Wert: \"{1}\"", reader[0].ToString(), reader[1].ToString());
            }

            // Beenden des Readers und Freigabe aller Ressourcen.
            reader.Close();
            reader.Dispose();

            command.Dispose();

            connection.Close();
            connection.Dispose();


Leider sagt der mit jetzt:
Ein Ausnahmefehler des Typs "System.BadImageFormatException" ist in System.Data.SQLite.dll aufgetreten.

Zusätzliche Informationen: Es wurde versucht, eine Datei mit einem falschen Format zu laden. (Ausnahme von HRESULT: 0x8007000B)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »layle« (01.01.2016, 18:33)


Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

01.01.2016, 16:04

Der Connection String den du der SqlConnection mitgibst ist falsch. Wenn du "sqlite c#" googelst findest du massig Beispiele wie das richtig geht.

3

01.01.2016, 18:34

Der Connection String den du der SqlConnection mitgibst ist falsch. Wenn du "sqlite c#" googelst findest du massig Beispiele wie das richtig geht.


Danke für deine Antwort! Ich hab diese Tutorial gefunden: http://thomasbelser.net/2009/01/25/c-sha…ine-einfuhrung/
Habe alles so gemacht doch jetzt bekomme ich eine andere Meldung! Ich habe meinen Thread angepasst!

Werbeanzeige