Hi,
ich bastel mir gerade eine Anwendung die die externe
MySQL-XBMC-Datenbank auslesen soll. Derzeit experimentiere ich noch rum.
Dieser Code funktioniert einwandfrei:
1 | public ArrayList GetMovieView2()
|
2 | {
|
3 | string command = @"Select `idMovie`,`idFile` FROM `xbmc_video75`.`movieview`;";
|
4 | MySqlCommand sqlCommand = connection.CreateCommand();
|
5 | sqlCommand.CommandText = command;
|
6 | MySqlDataReader Reader;
|
7 | connection.Open();
|
8 | Reader = sqlCommand.ExecuteReader();
|
9 | ArrayList Rückgabe = new ArrayList();
|
10 | int ordinalIdMovie = Reader.GetOrdinal("idMovie");
|
11 | int ordinalIdFile = Reader.GetOrdinal("idFile");
|
12 |
|
13 | while (Reader.Read())
|
14 | {
|
15 | Rückgabe.Add("IDMovie: " + Reader[ordinalIdMovie] + " IDFile: " + Reader[ordinalIdFile]);
|
16 | }
|
17 | connection.Close();
|
18 | return Rückgabe;
|
19 | }
|
Das ganze wollte ich jetzt auf Prepared-Commands umbauen, und bekomme
damit Probleme. Hier mal der Code:
1 | public ArrayList GetMovieView3()
|
2 | {
|
3 | MySqlCommand cmd = connection.CreateCommand();
|
4 | cmd.Connection.Open();
|
5 | cmd.CommandText = "Select ?MovieID,?FileID FROM ?DataTable.?DataView;";
|
6 | cmd.Prepare();
|
7 |
|
8 | cmd.Parameters.AddWithValue("?MovieID", "idMovie");
|
9 | cmd.Parameters.AddWithValue("?FileID", "idFile");
|
10 | cmd.Parameters.AddWithValue("?DataTable", "xbmc_video75");
|
11 | cmd.Parameters.AddWithValue("?DataView", "movieview");
|
12 |
|
13 | cmd.Prepare();
|
14 |
|
15 | MySqlDataReader Reader;
|
16 | Reader = cmd.ExecuteReader();
|
17 | ArrayList Rückgabe = new ArrayList();
|
18 | int ordinalIdMovie = Reader.GetOrdinal("idMovie");
|
19 | int ordinalIdFile = Reader.GetOrdinal("idFile");
|
20 |
|
21 | while (Reader.Read())
|
22 | {
|
23 | Rückgabe.Add("IDMovie: " + Reader[ordinalIdMovie] + " IDFile: " + Reader[ordinalIdFile]);
|
24 | }
|
25 | connection.Close();
|
26 | return Rückgabe;
|
27 | }
|
Und zwar schmeißt mir Visual Studio für die Zeile "Reader =
cmd.ExecuteReader();" folgenden aussagekräftigen Fehler:
"Ein Ausnahmefehler des Typs "MySql.Data.MySqlClient.MySqlException" ist
in MySql.Data.dll aufgetreten.
Zusätzliche Informationen: Fatal error encountered during command
execution."
Ich habe jetzt natürlich schon gegoogelt und bin da hauptsächlich auf
das Problem gestoßen, dass die Beispiele alle zum Einfügen von Daten in
die DB sind, ich will aber Daten abfragen. Auch kamen dann anfragen für
ganz komplizierte Befehle.
Vielleicht kann mir ja wer von euch auf die Sprünge helfen.
Danke auf jeden Fall schonmal fürs "zu Gemühte führen" meines Codes ;-)
VG
Matthias